我正在使用JavaScript中的缓冲区。我想用提供的输入的前五位数写缓冲区。而不是返回23917,而是返回2.391。有人可以解释为什么这样做吗?
非常感谢您。
var number=23917397219379217392781;
var buffer=new Buffer.alloc(5,number.toString());
console.log(buffer.toString());
答案 0 :(得分:0)
那是因为对于大数,toString()返回数字的科学符号字符串表示形式。
在您的情况下,number.toString()为'2.3917397219379218e + 22'。
要解决此问题,请实现自己的numberToString方法,并使用该方法获取非科学符号字符串,例如'23917397219379217392781'