TypeScript加法编号返回高浮点数

时间:2016-04-20 07:29:57

标签: types typescript numbers

我是TypeScript的一个问题。当我添加两个数字( 15.99 5.00 ) 我在结果中得到 20.9900000000002

这是我的声明:

 private difference: number;
 private prixReference : number;
 private max: number;
[...]
 this.prixReference = 15.99;
 this.difference = 5.00;
 this.max = this.prixReference + this.difference;

调试器

debugger values

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

通常CPU中的浮点数不能精确地表示小数部分,因为CPU表示基于二进制格式。

所以基本上0.5很好,因为它导致1/22^-10.25同样导致2^-2等。但0.1结果进入1/10,这不可能代表2的(负)力量。

结果,任何不是2的幂或其加法的分数总是导致在浮点数尾数的最后一位出现的一些舍入。 Javascript通常使用double类型,其精度高达53位(大约16位小数) - 请参阅double format