Aad*_*rsh 0 javascript rounding tofixed
为什么toFixed()
在以下情况下不能按预期工作?解决办法是什么?
代码:
var num = 5.56789;
var n = num.toFixed(16);
console.log(num)
console.log(n)
Run Code Online (Sandbox Code Playgroud)
n 的期望值: 5.5678900000000000
n 的实际值: 5.5678900000000002
笔记:
您几乎已经回答了自己的问题,javascript Number 类是一个 64 位浮点值,您所谈论的数字超出了给定 64 位所允许的精度。为了解决这个限制,像https://github.com/munrocket/double.js这样的库可以让你达到 128 位的精度。