我的应用在网页上有一个文本框,其值已被查找,然后被添加或减去另一个值。
它似乎很好地减去,但是在添加时,它将文本框中的值解释为文本,并将另一个float添加为文本:
以下是更改内容的源代码:
$('#mymoney').val($('#mymoney').val() + $prevevent.close);
//...or when subtracting:...//
$('#mymoney').val($('#mymoney').val() - $prevevent.close);
如何告诉mymoney被解释为浮点而不是字符串?
答案 0 :(得分:4)
这是因为.val()
正在以字符串形式读取值并进行连接。您可以使用parseInt()
:
$('#mymoney').val( parseInt($('#mymoney').val()) + $prevevent.close);
对于浮点值,请使用parseFloat()
:
$('#mymoney').val( parseFloat($('#mymoney').val()) + $prevevent.close);
答案 1 :(得分:1)
使用parseFloat
$('#mymoney').val(parseFloat($('#mymoney').val()) + $prevevent.close);
因为如果任一运算符hand是一个字符串,JS会将另一只手解释为string。
或者,您可以使用Number()
将字符串解析为(int或float)数字,如:
$('#mymoney').val(Number($('#mymoney').val()) + $prevevent.close);
但是parseInt or parseFloat is prefer
,因为它的行为比Number
更正常。例如,Number会将null
和""
解析为0,并删除数字开头的0
,尽管它可能代表八进制数字。此外,parseInt
将返回正确的部分,直到无法解析,例如:parseInt("15abc")
返回15
。
答案 2 :(得分:0)
其他答案都是正确的。然而,这里是另一种魔法的语法香料,可以为整数值创造奇迹。
您可以使用parseInt
前置表达式,而不是使用+
,它会将以下值解析为整数。
$('#mymoney').val( (+$('#mymoney').val()) + $prevevent.close);