javascript操作中有很多小数

时间:2014-02-11 11:36:52

标签: javascript operations

我正在运行以下javascript代码:

var var1 = 0.53;
var var2 = 0.47;
alert(var1-var2);

此代码返回:

0.06000000000000005

但是如果我执行这个javascript代码:

var var1 = 0.14;
var var2 = 100;
alert(var1*var2);

回报是:

14.0600000000000002

用什么文件来解释这个?

谢谢!

1 个答案:

答案 0 :(得分:2)

这是一个非常基本的问题,与浮点数的表示方式有关(详细说明请参见wikipedia article)。它不是特定于javascript。

由于计算机仅对二进制值起作用,因此无法准确表示某些分数。示例:可以精确表示1/2或3/4。另一方面,1/3不能(像在十进制系统中)。一个看似“简单”的数字如0.14导致舍入误差是违反规范的,然而,当你认为它为7/50 = 7 /(5 * 5 * 2)时,它变得清晰。问题是五个人。 1/5 = 0.2在十进制系统中很好,但不是二进制数。

<强>更新

我并不是说完全不可能进行这类计算。但是,您必须为此目的使用某些库(例如,使用货币值)