11

有没有办法强制 .getRange().getValues() 返回一个 int?尽管我的范围内只存在数字,但它会将它们作为字符串返回。我想避免在我的每一个语句中使用 parseInt 或创建一个带有转换值的单独数组。

或者这是唯一的解决方案,获取数组,然后在循环中解析整个数组?

4

3 回答 3

18

您可以使用一元“+”运算符轻松完成此操作,如下所示:

首先使用getValue()或从电子表格中获取值getValues()。假设您得到两个这样的值,并将它们存储在A = 1和中B = 2+您可以通过使用除连接字符串的任何数学二元运算符来强制将它们识别为数字,因此A - B = -1, whileA + B将返回“12”。

您可以通过将+一元运算符与任何可能被解释为字符串的变量一起使用来强制变量为数字。例如,+A + +B将返回正确的值 3。

于 2012-12-03T18:59:29.890 回答
13

您可以使用parseInt()Number()

例子

var A='12';var B=5
A+B = 125
parseInt(A)+B = 17
Number(A)+B = 17

也就是说,除非值中有一些空格或其他非数字字符,否则 getValues() 不应该返回字符串……这些值是手动输入的还是由某些函数产生的?

于 2012-06-20T22:01:54.247 回答
2

getValues() 返回一个 2D 对象数组 - 所以这些是字符串、整数或日期对象,具体取决于这些在电子表格中的格式。

返回您的电子表格,查看具有整数值的单元格的格式。将它们格式化为整数,你应该得到整数。

于 2012-06-21T04:41:48.477 回答