javascript操作中有很多小数
我正在运行以下javascript代码:javascript操作中有很多小数,javascript,operations,Javascript,Operations,我正在运行以下javascript代码: var var1 = 0.53; var var2 = 0.47; alert(var1-var2); var var1 = 0.14; var var2 = 100; alert(var1*var2); 此代码返回: 0.06000000000000005 但如果我执行此javascript代码: var var1 = 0.53; var var2 = 0.47; alert(var1-var2); var var1 = 0.14; var v
var var1 = 0.53;
var var2 = 0.47;
alert(var1-var2);
var var1 = 0.14;
var var2 = 100;
alert(var1*var2);
此代码返回:
0.06000000000000005
但如果我执行此javascript代码:
var var1 = 0.53;
var var2 = 0.47;
alert(var1-var2);
var var1 = 0.14;
var var2 = 100;
alert(var1*var2);
报税表为:
14.0600000000000002
有什么文档可以解释这一点
谢谢 这是一个非常基本的问题,与浮点数的表示方式有关(有关详细说明,请参阅)。它不是特定于javascript的 由于计算机只处理二进制值,所以不可能精确地表示某些分数。示例:1/2或3/4可以精确表示。另一方面,1/3不能(就像十进制一样)。相反,一个看似“简单”的数字,如0.14,会导致舍入误差,然而,当你认为它是7/50=7/(5*5*2)时,它就变得清晰了。问题是五个。1/5=0.2在十进制中很好,但不是二进制数 更新:
我并不是说不可能精确地进行这样的计算。但是,您必须为此使用某些库(例如用于处理货币值)任何讨论浮点数如何工作的内容。很好的解释,我会提供一个链接。