【发布时间】:2020-01-18 03:43:17
【问题描述】:
下面是代码:
var a ="10.9549999999999141";
console.log(a);
console.log(typeof a);
console.log(Number(a));
现在上面的代码结果如下:
"10.9549999999999141"
"string"
10.954999999999915
在这里查看从 10.9549999999999141 到 10.954999999999915 的值四舍五入,因为查询的结果以字符串形式出现,所以我想将完全相同的值转换为数字以避免四舍五入。
有人可以帮忙吗?
【问题讨论】:
-
Javascript 本身最多只能处理 16 位数字。如果您想更精确,则需要使用专门的库。 This answer 应该对你有帮助。
-
您也许可以尝试转换为BigInt。但是你需要自己跟踪使用的指数。
-
不过,libraries 使用定点算法。
Decimal("10.9549999999999141")将是准确的。
标签: javascript floating-point numbers decimal