javascript - 意外的输出值即将到来
问题描述
我正在使用谷歌应用程序脚本来实现一个函数,我需要在一个长整数数组上运行 ForEach 循环,但它会自动舍入。
function test(){
const arr = [1269771000012086445,1269771000011309247];
arr.forEach(function(a){
Logger.log(JSON.stringify(a));
})
}
如果我们运行以下代码,它将给出以下输出:-
1269771000012086500
1269771000011309300
我尝试了一些内置的数学函数,但没有预期的输出,还有什么我错过的吗?
样本表的 URL - : https://docs.google.com/spreadsheets/d/1q9OPCC1nHV-8ROCzmF8ALMAhFp1ml4BvZLqDLfSxLYY/edit?usp=sharing
解决方案
JavaScript Number 类型是双精度 64 位二进制格式的 IEEE 754 值。在最近的实现中,JavaScript 还使用 BigInt 类型支持具有任意精度的整数。
您的值超出了可用内存大小,因此它以四舍五入的形式存储。考虑以其他方式格式化数据
推荐阅读
- node.js - 为什么服务器向自己发送请求?
- python - Python:将私有 repo 分支作为包模块导入
- xpath - Unicode 字符不返回正确的结果
- ios - 在 Swift 中将带有 (|, &, -) 等特殊符号的字符串转换为 Url
- python - 我想通过使用 ModelChoiceField 输入表单和表单表单来创建表单表单
- php - 使用 phinx php 进行数据库迁移
- python - 用于匹配的 Python 数据框合并
- python - 如何组合两个 Pandas 数据框,同时将两者的列保留在新数据框中?
- java - 这种基于令牌的身份验证系统设计是否有意义?
- android - 如何禁用某些片段的底部导航