JavaScript - 不正确的自动舍入小数

标签 javascript

我的 JS 应用程序中有来自后端服务的大量数字。我不想丢失小数点后的任何数字。

但是,当像 999999999999999.99 这样的数字被赋值给 JS 中的变量时,它会四舍五入为 1000000000000000,99999999999999.99 会变成 99999999999999.98。

这两个数字都在限制范围内。即小于 Number.MAX_SAFE_INTEGER

在下面的屏幕截图中查看上述操作:

enter image description here

有人可以解释一下吗?

最佳答案

MAX_SAFE_INTEGER 仅保证低于其整数的精度,而不保证小数。

事实上,Javascript 中没有小数,只有 float 。当您尝试以过高的精度表示数字时,它只会四舍五入到最接近的 64 位 float 。

如果您确实想要小数,则需要使用小数库,例如 decimal.js或者你可以自己编写。

关于JavaScript - 不正确的自动舍入小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55917318/

相关文章:

javascript - 如何在 Nodejs 调试控制台 View 中更改对象的字符串表示

javascript - 使用浏览器自动下载文件并能正常打开或阅读

javascript - 在 HTML 上使用 JS 设置问候语时出现问题

JavaScript 日期对象

javascript - 为什么其余的 api 调用不起作用?

javascript - 在 react 中滚动时类没有改变

javascript - 加载 AJAX 调用的 div 在 IE 或 Chrome 中不显示,在 Firefox 中工作正常

javascript - 使用react-native克隆原生android闹钟屏幕

javascript - JavaScript 数组简单

javascript - document.getElementById().innerHTML 未在 ReactJS 中获取文本