在Google表格中,我在单元格中收到“错误:正在加载数据...”消息。我将问题缩小为更改浮点数的最后一位,并将其与用Google脚本编辑器/ javascript编写的简单自定义函数进行交互。我认为这是Google表格/应用中的真实错误(并且我已经通知Google)。我通过使用value()函数找到了一种解决方法,但是我想知道是否有人知道更好的解决方法。
此错误源于较大的工作表,但经过数小时的侦探工作,我将其缩小为以下最小的可重现示例。
从单元格B7 = 0.925990756477147开始。将单元格B8设置为
=(10*B7)^0.41
正确评估为
2.4906
将单元格B9设置为
=passthrough(B8)
,它将在永远不会消失的单元格中生成“正在加载...”消息。单击单元格,您将看到错误消息 “错误: 正在加载数据...”
您必须先定义传递功能,方法是转到“工具”->“脚本编辑器”,然后输入简单功能(仅返回其参数):
function passthrough(arg){
return(arg)
}
如果在单元格B8中用0.4100000001替换幂计算中的0.41指数,或者对浮点计算进行了其他小的更改,该错误就会消失。仅当将单元格B8作为参数传递给“自定义”函数(在javascript的Google脚本编辑器中编写)时,才会出现此问题。可以很好地应用sqrt(B8)等Google表格的内置功能。</ p>
我发现的一种解决方法是将单元格B8替换为
=value( (10*B7)^0.41 )
,但是临时将所有结果包装在value()函数中。有更好的解决方法吗?有没有一种方法可以编写javascript例程来更好地处理给出的数字? (我想知道它是否被赋予128位浮点数,而不是标准的双64位浮点数。)我已经在Sheets中向Google报告了此错误,“帮助->报告问题””
此Google工作表中提供了一个可复制的最小示例,其中有一些变化:
https://docs.google.com/spreadsheets/d/1UJgg49g42otQZwDh2wAvwkeFvtfc-2iEnysB-HOjRPA