我正在寻找一种将var强制为小数点后2位的方法,不幸的是,仅当数字不是较大字符串的一部分时,才能在工作表中格式化单元格,因此我需要精确地设置值。下面的示例:
function onOpen() {
var submenu = [{name:"ERROR TEST", functionName:"errorTest"}];
SpreadsheetApp.getActiveSpreadsheet().addMenu('RUN', submenu);
}
function errorTest(){
var ss = SpreadsheetApp.getActive();
var num = ss.getRange("A1").getValues(); //gets number 22.34567 out of A1
var n = num.toFixed(2);
var text = "Price of your item: £" + n;
ss.getRange("B1").setValue(text);
}
问题是这导致错误“ TypeError:找不到要在对象22.34567中修复的函数。”
非常感谢您。
答案 0 :(得分:0)
您正在调用getValues()函数,该函数返回对象/值的二维数组。
JavaScript / Google Apps脚本擅长在类型之间进行更改,但不会将变量num识别为数字,而是将其视为二维数字数组。
如果调用getValue(),则将得到一个对象,并且Google Apps脚本可以将其视为一个数字,从而允许您调用toFixed()函数:
function errorTest(){
var ss = SpreadsheetApp.getActive();
var num = ss.getRange("A1").getValue(); //gets number 22.34567 out of A1
var n = num.toFixed(2);
var text = "Price of your item: £" + n;
ss.getRange("B1").setValue(text);
}