Javascript减去数字是不准确的 - 为什么

Javascript substracting numbers is not accurate - why

本文关键字:为什么 不准确 数字 Javascript      更新时间:2023-09-26

我这里有一个小提琴:http://jsfiddle.net/94wQJ/1/- 但可能有人可以通过查看以下内容来提供建议。

<button type="button" id="allocate">Calc</button>
 $('#allocate').click(function () {
     val1 = 25.00;
     val2 = 16.37;
     val3 = val1-val2;
     alert(val3);
 });

25 - 16.37 = 8.63 - 但是,Val3 的警报 = 8.62999999999

为什么不准确?

谢谢

马克

尝试在此处使用toFixed更多信息

val3.toFixed(2)

演示小提琴

为什么不准确?

这是浮点

数学是否损坏?的副本,但要回答您的具体问题:浮点数通常以 2 为基数存储数字,因为它允许比使用以 10 为基数更准确地存储更多数字,代价是即使小数位数很少,也无法准确存储所有以 10 为底的数字。

许多小数部分不能完全用二进制表示。

使用.toFixed(2)

请检查此

val3 = Math.round(val3*100)/100;

I have update here http://jsfiddle.net/94wQJ/7/