当有人点击我的价格上涨按钮时,我希望价格在#priceInput框中增加.1。这只是不起作用..我做错了什么?
$("#priceUp").click(function(){
var xyz = parseInt($("#priceInput").val());
xyz=(xyz+.1);
$("#priceInput").val(xyz);
});
答案 0 :(得分:5)
您正在尝试将十进制数解析为整数,因此您的解决方案无法正常工作,因为数学评估器会对您的数字进行舍入。
如果运行parseInt(0.1),则结果为0.
因此,请使用parseFloat
代替parseInt
。
你还需要一个小技巧来避免'0.30000000000000004'“bug”(这不是一个真正的错误)。
解决方案:http://jsfiddle.net/erLqa/
答案 1 :(得分:4)
它可能无效,因为您添加0.1
,但稍后您使用parseInt
。使用parseFloat
代替parseInt
。
答案 2 :(得分:2)
您可能希望使用parseFloat
,而不是parseInt
,因为您将价格提高了0.1
。此外,您需要确保#priceInput
的值是一个数字:
$("#priceUp").click(function() {
var xyz = parseFloat($("#priceInput").val() || 0);
xyz = (xyz + .1);
$("#priceInput").val(xyz);
});