Google Apps脚本中是否有toFixed()的替代方法?

时间:2018-08-10 10:23:39

标签: javascript google-apps-script google-sheets

我正在寻找一种将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中修复的函数。”

  • 是否有替代方法,可以删除/填充数字2 小数位?
  • 如果没有人知道如何制作toFixed()版本,那么我可以 自己在脚本中创建它?

非常感谢您。

1 个答案:

答案 0 :(得分:0)

您正在调用getValues()函数,该函数返回对象/值的二维数组。

enter image description here

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);
}