JavaScript How to calculate string value with 18 decimals
我想计算1538422.986611792949856002-1
期望值为1538421.986611792949856002(显示18位小数为点)。
我想我需要把这两个数字串成字符串,因为parsefloat、number等函数不显示18位小数并减去这两个字符串??
快捷方式计算字符串值,但保留18位小数。
1
| eval("1538422.986611792949856002 - 1").toFixed(18) |
- 我在console.log中尝试过,输出是1538421.986611793050542474。不是1538421.986611792949856002。为什么?
- 因为计算机中的浮点问题。en.wikipedia.org/wiki/…stackoverflow.com/questions/963873/…
- 该死,那就没有办法计算出1538421.986611792949856002的输出了吗?我不想用图书馆
- 不,您无法获得所需的确切输出,但可以使用math.fround(eval("1538422.986611792949856002-1"))获得近似输出。tofixed(18)
- 你可以通过将数字分成两部分来解决这个问题:一部分是浮点数,另一部分是不浮点数。对num1、num2的浮动部分和num1、num2的非浮动部分进行运算。然后得出结论。
- 您应该展示如何实际解决问题,也许可以将所有这些评论添加到答案中。由于没有评论,它无法提供准确的答案。