Google apps script Google应用程序脚本自定义函数出错
我有一个三栏的电子表格。所有数字都在华氏温度列中,其他两个数字由函数填充Google apps script Google应用程序脚本自定义函数出错,google-apps-script,Google Apps Script,我有一个三栏的电子表格。所有数字都在华氏温度列中,其他两个数字由函数填充 Fahrenheit Celsius ComputedFahrenheit -200 -180 -160 -140 -120 -100 -80 -60 -40 -20 0 32 40 60 80 100 120 140 160 180 200 使用以下函数填充摄氏度和计算华氏度列: function f2c(fahrenheit) { if (typeof(fahrenheit) !== "number") {
Fahrenheit Celsius ComputedFahrenheit
-200
-180
-160
-140
-120
-100
-80
-60
-40
-20
0
32
40
60
80
100
120
140
160
180
200
使用以下函数填充摄氏度和计算华氏度列:
function f2c(fahrenheit) {
if (typeof(fahrenheit) !== "number") {
Logger.log(typeof(fahrenheit));
throw "Fahrenheit column must contain numbers";
}
var celsius = (fahrenheit - 32) * (5/9);
return celsius;
}
function c2f (celsius) {
if (typeof (celsius) !== "number") {
throw "celsius must be a number";
}
var fahrenheit = (celsius*(9/5)) + 32;
return fahrenheit;
}
除第14行外,所有单元格均显示正确的数据:
40 4.444444444 Error: Loading Data ..
注:f2c使用Farenheit列,c2f使用Celsius列
我看不出有什么问题
项目关键:MESQb2p_hPY7vMP_LZjizjHo2ajWN_uqm
SDC键:df47e1281fe5caea我刚刚重新创建了您的电子表格和函数,在第14行我得到: 40 4.444444 40 我建议你试试:
好的,这似乎是谷歌新表单中的一个bug,与自定义函数相关,这些自定义函数的参数中有,可能与 我创建了一个。我发现这个值有时会在刷新后计算出来,而其他时候则会一直停留在加载状态。但是,如果对
c2f()
和f2c()
的输出进行四舍五入,则代码可以一直返回
此代码起作用,并将以与不舍入输出相同的精度结束:
ROUND = Math.pow(10, 12);
function f2c(fahrenheit) {
if (typeof(fahrenheit) !== "number") {
Logger.log(typeof(fahrenheit));
throw "Fahrenheit column must contain numbers";
}
var celsius = (fahrenheit - 32) * (5/9);
return Math.round(celsius * ROUND) / ROUND;
}
function c2f (celsius) {
if (typeof (celsius) !== "number") {
throw "celsius must be a number";
}
var fahrenheit = (celsius*(9/5)) + 32;
return Math.round(fahrenheit * ROUND) / ROUND;
}
我已经在中实现了它。让我知道这是否有效 当我重新加载时,它显示40,然后返回错误显示。我创建了一个新的电子表格,新的脚本文件,它显示正确。请参阅下面我对br1ckb0t的回复