所以我正在编写一个程序来计算数字到非常精确的值,并且我学到了数值从未像它们看起来那样严格的方法。例如:
<script type="text/javascript">
var num=80.902
var difference=(num*10-Math.floor(num*10))/10;
document.write(difference);
</script>
这表明实际差异为0.001999999999998181。有没有办法让这些数字准确?我猜它是某种记忆的东西,所以我有没有办法把它变成双重的东西?令人讨厌的是必须将数据与小于10 ^ -13的数字进行比较。
答案 0 :(得分:0)
这是javascript的固有限制。它不是为精确的精确浮点数数学而设计的。
这个问题是您要查看的位置:How to deal with floating point number precision in JavaScript?和Is floating point math broken?
......我猜想JavaScript是浮动精度最差的语言。