将float转换为int不起作用

时间:2015-07-09 23:16:54

标签: google-apps-script

我从工作表中提取数字,并通过html与用户选择进行比较。然而,即使谷歌表中的数字都是int类型数字,如1001,1002等,Logger.log中的数字显示为浮点数。当尝试将数字与用户输入进行比较时,总是将浮动(从表格)与int(来自用户)进行比较。

我尝试使用parsteInt,Math.floor和round将返回的float转换为int。它似乎没有转换变量。我应该使用另一种方法吗?

2 个答案:

答案 0 :(得分:1)

我遇到了这种问题并使用了2种解决方法: 对于脚本,我必须在属性中存储值,但是当我调用属性时它是文本而不是数字,双数不是我的计算的问题。所以我这样做:

var prop = PropertiesService.getUserProperties();
var number = parseInt(prop.getProperty('PROPERTY_NAME'));
//do some stuffs after

另一个脚本我必须更脏一点,因为从属性我得到例如“8.0”而不是“8”。所以我这样做:

var prop = PropertiesService.getUserProperties();
var value = prop.getProperty('PROPERTY_NAME');
var number = number.split(".")[0];

最后它起作用。

斯特凡

答案 1 :(得分:1)

JavaScript没有整数或浮点数......只是数字。所以3.0和3是相等的,如果它们是数字的话。

您的用户输入可能是字符串,而不是数字。您需要将字符串强制转换为数字。

if (+userInput === 3) { etc.

其他问题中有lots more examples