有没有办法强制.getRange()。getValues()返回一个int?虽然我的范围中只存在数字,但它将它们作为字符串返回。我想避免在我的每个语句中使用parseInt或者创建一个带有转换值的单独数组。
或者这是唯一的解决方案,获取数组然后在循环中parseInt整个数组?
答案 0 :(得分:17)
您可以使用一元'+'运算符轻松完成此操作,如下所示:
首先使用getValue()
或getValues()
从电子表格中获取您的值。假设您获得了两个这样的值,并将它们存储在A = 1
和B = 2
中。您可以使用除+
之外的任何数学二元运算符强制它们被识别为数字,这些运算符连接字符串,因此A - B = -1
,而A + B
将返回'12'。
只需将+
一元运算符与任何可能被解释为字符串的变量一起使用,就可以强制变量为数字。例如,+A + +B
将返回正确的值3。
答案 1 :(得分:13)
您可以使用parseInt()
或Number()
示例
var A='12';var B=5
A+B = 125
parseInt(A)+B = 17
Number(A)+B = 17
那就是说getValues()不应该返回字符串,除非值中有一些空格或其他非数字字符......这些值是手动输入还是由于某些功能而产生的?
答案 2 :(得分:2)
getValues()返回一个2D对象数组 - 因此这些是字符串,整数或日期对象,具体取决于电子表格中的格式。
返回电子表格,查看具有整数值的单元格的格式为。将它们格式化为整数,您应该返回整数。