【问题标题】:TypeScript additionning number return high float [duplicate]TypeScript加法数字返回高浮点数[重复]
【发布时间】:2016-08-12 17:11:19
【问题描述】:

我遇到了 TypeScript 的问题。当我添加两个数字(15.995.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;

调试器

有什么想法吗?

【问题讨论】:

标签: types typescript numbers


【解决方案1】:

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

所以基本上0.5 很好,因为它会导致1/22^-10.25 同样会导致2^-2 等。但是0.1 会导致1/10,这无法表示为(负)2 的幂。

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

【讨论】:

    猜你喜欢
    • 2017-05-06
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多