Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript操作中有很多小数_Javascript_Operations - Fatal编程技术网

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

我正在运行以下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 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在十进制中很好,但不是二进制数

更新:


我并不是说不可能精确地进行这样的计算。但是,您必须为此使用某些库(例如用于处理货币值)

任何讨论浮点数如何工作的内容。很好的解释,我会提供一个链接。