Node控制台如何显示浮点数

时间:2018-04-14 17:06:51

标签: javascript node.js floating-point precision

我知道编程语言试图代表基数为10的基数为2的四舍五入问题。但是当我尝试使用NodeJs控制台时,有些情况让我感到困惑。我知道基数为2的数字不能完全代表基数为10的0.1。但是当我在控制台中输入0.1时,它会返回0.1。起初我以为它只是将数字的表示返回给控制台。但在进一步试验时,0.1 + 0.1会返回0.2。所以这是我的问题:

  1. 控制台如何知道将其精确地舍入到0.2
  2. 为什么在打印0.2 + 0.1时输入0.3000000000004之类的内容时,我只会遇到舍入错误?
  3. 当我们说x=0.1之类的内容时,Node会存储什么?
  4. 更新:我认为我的问题并不清楚,所以我想提供一个更好的例子。基数10中的0.10.000110011001100110011......。这将在某个时刻被切断,并且只能说只存储了0.000110011001100110011。这实际上是基数10中的0.099999904632568359375。为什么当我们输入0.099999904632568359375时,控制台不打印0.1。如何在舍入误差之后找回该数字?希望我的困惑源更加明白。

1 个答案:

答案 0 :(得分:2)

node.js未向您显示确切的值。 JavaScript Number转换为字符串的默认值为to use just enough decimal digits to distinguish the Number value from neighboring representable values。我不知道node.js使用什么方法,但只使用JavaScript的默认值就可以解释它。