javascript - 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());
解决方案
这是因为对于大数字,toString() 返回数字的科学记数法字符串表示。
在您的情况下, number.toString() 是“2.3917397219379218e+22”。
为了解决这个问题,实现你自己的 numberToString 方法,并使用它来获得一个非科学符号字符串,如 '23917397219379217392781'
推荐阅读
- c# - 如何使用 ValueConversions 检索 Entity Framework Core 的数据库模型
- scala - 如何将数据框中的每一列转换为具有 ColumnName 和 ColumnValue 的行
- mysql - 使用计算值或触发器来更新同一表中不同行的数据的行?
- java - 我正在尝试通过 ModBus RTU 协议从时间计数器 OVEN 获取数据,但收到垃圾作为响应
- python - 为什么使用 list() 构造函数?
- php - 从 nuxt.js 发布到 laravel 后,值变为空
- wagtail - 如何在 InlinePanel 中设置初始空(可订购)项目的数量?
- javascript - 提交后刷新对话框及其内容
- reactjs - 使用 BrowserRouter 单击按钮/链接后如何切换到其他 url
- javascript - 为什么在月份下拉菜单中选择选项 12 时仅不加载 12 月份?