toFixed函数没有给出预期的输出。

问题描述 投票:0回答:1

为什么 toFixed() 对于以下情况,没有达到预期的效果?解决方法是什么?

代码。

var num = 5.56789;
var n = num.toFixed(16);
console.log(num)
console.log(n)

期望值n: 5.5678900000000000

n的实际值 5.5678900000000002

注:

  1. 我已经看完了所有相关的堆栈溢出问题。
  2. 我知道它没有给出预期的结果,因为浮点数不能用二进制完美地表示。
  3. 我期待的是一个库函数能够真正识别上述情况并产生预期的输出。
javascript rounding tofixed
1个回答
5
投票

你几乎已经回答了自己的问题,javascript Number类是一个64位的浮点值,而你所说的数字超出了给定的64位所允许的精度。为了绕过这个限制,一个类似于 https:/github.communrocketdouble.js。 会让你获得最高128位的精度。

© www.soinside.com 2019 - 2024. All rights reserved.