javascript - 是否存在严重的 Javascript 引擎错误?
问题描述
在 NodeJS 无服务器上编写应用程序后端时,我偶然发现了一个非常奇怪的行为。
当我使用某个数字并将其乘以一百时,似乎会导致 JS 引擎出错...我也在基本网页上的一个简单标签上尝试过,错误仍然相同,它也一样做出反应。我尝试了不同的浏览器(Chrome 86.0.4240.80、Safari 14.0、Firefox 82.0 ......我在 MacOS Catalina 10.15.7 上运行,但我也尝试在我的 iphone 上使用 IOS 14 并且错误仍然存在......它似乎是全球性的...... .
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
*/
有没有人遇到过同样的问题?知道它可能来自哪里吗?尽管如此,这似乎是一个非常严重的问题
解决方案
推荐阅读
- python - 我的 python 代码在操场上工作,但在 python 中不起作用
- javascript - Chrome 中的 WebRTC 无法两次设置LocalDescription
- python - 在 Python 3.8.2 中从具有至少 N 个唯一数字的特定集合中生成所有数字
- flutter - 将 API 中的数据设置为变量 - Flutter
- html - 显示原始 html 而不是解释
- python - 在python中多次在数组中使用'range'
- c++ - 对于地址类型,std::optional 的赋值运算符“有效原子”吗?
- ios - Swift 5:将部分添加到 tableview 后,我得到“无效更新:第 1 部分中的行数无效等。”
- c++ - 正确有效地返回一个 Eigen::Matrix (带有惰性求值)
- c++ - 在两个四元数之间插值很长的路