Java脚本缓冲区,alloc(5,number.toString())返回float

时间:2018-12-20 05:05:35

标签: javascript ecmascript-6 buffer

我正在使用JavaScript中的缓冲区。我想用提供的输入的前五位数写缓冲区。而不是返回23917,而是返回2.391。有人可以解释为什么这样做吗?

非常感谢您。

var number=23917397219379217392781;
var buffer=new Buffer.alloc(5,number.toString());
console.log(buffer.toString());

1 个答案:

答案 0 :(得分:0)

那是因为对于大数,toString()返回数字的科学符号字符串表示形式。

在您的情况下,number.toString()为'2.3917397219379218e + 22'。

要解决此问题,请实现自己的numberToString方法,并使用该方法获取非科学符号字符串,例如'23917397219379217392781'