I stumbled across a very very weird behavior while coding an app backend on NodeJS serverless.
When I used a certain number and multiplied it by a hundred it seems to cause an error of the JS engine... I tried it on a simple tag on a basic webpage as well and the error remains the same, it's also the same on react. I tried on different browsers (Chrome 86.0.4240.80, Safari 14.0, Firefox 82.0... I am running on MacOS Catalina 10.15.7 but i also tried on my iphone with IOS 14 and the error persists... It seems global...
const toFixedNumber = (toFixTo = 2, base = 10) => (num) => {
const pow = Math.pow(base, toFixTo);
return +(Math.round(num * pow) / pow);
};
// the error occurs when number is between 553.17 and 553.21
const number = 553.2;
console.log(
"raw number " + number,
"rounded number " + toFixedNumber(2)(number),
"rounded number * 100 " + toFixedNumber(2)(number) * 100,
"raw number * 100 " + number * 100
);
/*
Output:
raw number 553.2
rounded number 553.2
rounded number * 100 55320.00000000001
raw number * 100 55320.00000000001
*/
Does anyone experienced the same issue ? Any idea where it might come from ? Nevertheless it seems like a pretty serious issue