由于无法使.toFixed(2)正常工作,因此我设计了自己的代码,在“。”之后添加了所需的十进制数字。通过简单地连接两个带+号的字符串。
虽然Browser.msgBox将正确连接的2个字符串输出为“ 1.00”,
似乎getRange.setValue仅将2个字符串中的第一个输出为“ 1” :(
function myFunction() {
var ss_calc = SpreadsheetApp.openById("1cFt0DbnpWGHquKk4ijxdKhwkaF8GhumWDWjTpHuSXbQ");
var sheet_calc = ss_calc.getSheetByName("Calcs");
var ss_source = SpreadsheetApp.openById("1gXeXmiw9EnzQXaiE7H8_zrilE2zyotlSuuIS8X9IxfQ");
var sheet_source = ss_source.getSheetByName("Farmah");
var decDig = ""; var strDec = ""; var impVal = "";
impVal = sheet_source.getRange(12,7).getValue().toString();
if (JSON.stringify(impVal).indexOf(".")>-1)
{ if (JSON.stringify(impVal).split(".")[1].length < 2 )
{
if (JSON.stringify(impVal).split(".")[1].length < 1)
{
decDig = "00";
}
else
{
decDig = "0";
}
}
}
else
{
decDig = ".00";
}
var strDec = impVal.toString() + decDig.toString();
Browser.msgBox(JSON.stringify(impVal).indexOf(".")+ "\\n" +
impVal.toString()+ "\\n" +
decDig+ "\\n" +
strDec);
sheet_calc.getRange(1,1).setValue(strDec);
}
来自sheet_calc.getRange(1,1).setValue(strDec);我期望得到输出“ 1.00”,但我只会得到“ 1” :(
我想念什么?
这是google电子表格的链接(知道链接的任何人都可以编辑:)
(以上代码必须由下面的第一个电子表格中的脚本编辑器手动触发):
https://docs.google.com/spreadsheets/d/1cFt0DbnpWGHquKk4ijxdKhwkaF8GhumWDWjTpHuSXbQ/edit?usp=sharing
https://docs.google.com/spreadsheets/d/1gXeXmiw9EnzQXaiE7H8_zrilE2zyotlSuuIS8X9IxfQ/edit?usp=sharing
最佳答案
您要将1.00
的值放入单元格“ A1”。
如果我的理解是正确的,那么该修改如何?我认为问题的原因在于,将setValue()
放置的值转换为数字。以此显示1
。为了将值设为1.00
,我认为有3种模式。请根据您的情况选择其中之一。
模式1:
在此模式下,根据您的问题,使用setNumberFormat("@")
将值作为字符串放入。
从:
sheet_calc.getRange(1,1).setValue(strDec);
至:
sheet_calc.getRange(1,1).setNumberFormat("@").setValue(strDec);
模式2:
在这种模式下,根据您的问题,使用
setNumberFormat("0.00")
设置单元格的格式。从:
sheet_calc.getRange(1,1).setValue(strDec);
至:
sheet_calc.getRange(1,1).setNumberFormat("0.00").setValue(strDec);
模式3:
在此模式下,从共享电子表格的脚本中,当
decDig
为".00"
时,将设置格式。从:
sheet_calc.getRange(x+6,c).setValue(strDec);
至:
var range = sheet_calc.getRange(x+6,c);
if (decDig) {
range.setNumberFormat("0.00").setValue(strDec); // or setNumberFormat("@")
} else {
range.setValue(strDec);
}
参考:
setNumberFormat(numberFormat)
如果我误解了您的问题,而这不是您想要的结果,我深表歉意。