gpt4 book ai didi

javascript - AngularJS 数学运算

转载 作者:行者123 更新时间:2023-11-28 20:44:53 25 4
gpt4 key购买 nike

我有一个奇怪的问题,在 ng-bind 中使用数学表达式时,结果是意外的。根据我的实验,只有当被加数的第一部分为 15 以上,第二部分为 1.112 时,才会出现此问题。

ng-bind="sum = 16 + 1.112"ng-model="sum"value="16.112000000000002"

最佳答案

这是一个标准浮点舍入问题。 float 以基数 2 表示,因此大多数有限小数没有精确的(二进制) float 表示形式。 JavaScript 使用 IEEE754 double 字,精度为 53 位,最接近 1.112 的数字是

1.1120000000000000994759830064140260219573974609375

加上15需要超过53位来表示尾数,所以必须四舍五入,结果是

16.11200000000000187583282240666449069976806640625

并且比最接近的 IEEE754 double 16.112 还要大,即

16.111999999999998323119143606163561344146728515625

因此显示 16.112 之后的第一个非零数字,以将其与最接近 16.112 的数字区分开来

关于javascript - AngularJS 数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13676384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com