首页 > 解决方案 > Java Script Buffer,alloc(5,number.toString()) 返回浮点数

问题描述

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

非常感谢你。

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

标签: javascriptecmascript-6buffer

解决方案


这是因为对于大数字,toString() 返回数字的科学记数法字符串表示。

在您的情况下, number.toString() 是“2.3917397219379218e+22”。

为了解决这个问题,实现你自己的 numberToString 方法,并使用它来获得一个非科学符号字符串,如 '23917397219379217392781'


推荐阅读