当我运行我的脚本而不是添加我认为应该是两个数字的脚本时,它会连接...
我觉得我在看艾博特和科斯特洛的位置。 https://www.youtube.com/watch?v=9o1SAS8KyMs
var weekNum = e.parameter.weekListBox;
weekNum = weekNum + 3;
weekListBox的值为1到15。 我试图将它抵消3。
然而,1 + 3产生13,而不是我预期的4。开车送我疯了,直到我意识到为什么会这样。
那么如何才能添加呢?
由于
答案 0 :(得分:1)
事实证明,这是唯一对我有用的解决方案......非常奇怪的问题。
Google Spreadsheet Script getValues - Force int instead of string
hoogamaphone回答
您可以使用一元' +'轻松完成此操作。运算符如下:
首先使用getValue()或从电子表格中获取您的值 的GetValues()。假设您得到两个这样的值,并将它们存储在A = 1中 和B = 2.您可以使用任何强制它们被识别为数字 数学二元运算符除了+,它连接字符串,所以A - B = -1,而A + B将返回' 12'
只需使用+一元即可强制变量为数字 具有可能被解释为字符串的任何变量的运算符。对于 例如,+ A + + B将返回正确的值3。
答案 1 :(得分:0)
见
function myFunction() {
var aa = 1;
var ab = aa + 3;
var ba = "1";
var bb = ba + 3;
}
ab = 4 但 bb =“13”
答案 2 :(得分:0)
上面的答案解释了这个问题,但没有提供解决方案(评论除外,但parseInt()
不是唯一/最佳解决方案。)
你遇到这个问题的原因是e.parameter.weekListBox;
返回的值实际上是一个字符串(除了日期对象的日期之外总是如此)所以结果你get是正常的字符串连接(string + number = new string)。
一个简单的解决方案是按如下方式更改代码:
var weekNum = Number(e.parameter.weekListBox);// make it a number
weekNum = weekNum + 3;// and the result will be a sum