2015-07-09 118 views
0

我从工作表中拉出数字并将它们与用户通过html进行选择进行比较。不过,即使Google表格中的数字都是整数类型数字,例如1001,1002等,Logger.log中的数字显示为浮点数。当试图将数字与用户输入进行比较时,总是会出现错误,将float(从表单)与int(来自用户)进行比较。将float转换为int不起作用

我试着将返回的浮点数转换为int使用parsteInt,Math.floor和一轮。它似乎并没有转换变量。我应该使用另一种方法吗?

+1

它适合我。你可以请你分享你的代码并输出你想要做的事情吗? – pointNclick

回答

0

我得到这样的问题,并使用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

我相信'number.split ...'在这个例子中应该是'value.split ...' – trevordmiller

1

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

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

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

在其他问题中有lots more examples这个。