首页 > 解决方案 > 意外的输出值即将到来

问题描述

我正在使用谷歌应用程序脚本来实现一个函数,我需要在一个长整数数组上运行 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

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


JavaScript Number 类型是双精度 64 位二进制格式的 IEEE 754 值。在最近的实现中,JavaScript 还使用 BigInt 类型支持具有任意精度的整数。

您的值超出了可用内存大小,因此它以四舍五入的形式存储。考虑以其他方式格式化数据


推荐阅读