我做了一个脚本来对2个文本字段值求和并自动获取其他文本框结果中的值,问题是没有使用小数进行求和。
我想将每个文本框舍入为2位小数,如果它有更多自动转换为2位小数并将结果转换为2位小数。
以下是demo:
<script type="text/javascript">
jQuery("#ige").live("change", function(){
ige_value = parseInt(jQuery(this).val());
sba_value = parseInt(jQuery("#sba").val());
total = ige_value + sba_value
jQuery("#result").val(total.toFixed(2));
});
</script>
FIRST VALUE<input id="ige" name="ige" type="text" > <br/>
SECOND VALUE <input id="sba" name="sba" type="text" ><br/>
RESULT: <input id="result" name="result" type="text" >
请有人帮我这个吗?
答案 0 :(得分:3)
尝试使用parseFloat。这里使用的是不支持小数的整数。
使用toFixed(2);
进行格式化
答案 1 :(得分:2)
问题是您使用的是parseInt:
ige_value = parseInt(jQuery(this).val());
整数没有小数值,请尝试将其替换为:
ige_value = parseFloat(jQuery(this).val());
您可以使用.toFixed(2)
始终在结果上显示2位小数。
答案 2 :(得分:1)
这是另一个答案,似乎也修复了选择“ige”值的一些可能的逻辑错误。首先,这是代码,然后将出现一个新的jsFiddle:
HTML
FIRST VALUE
<input id="ige" name="ige" type="text">
<br/>SECOND VALUE
<input id="sba" name="sba" type="text">
<br/>RESULT:
<input id="result" name="result" type="text">
现在是JavaScript
jQuery("#ige, #sba").live("change", function () {
var ige_value = Math.round(parseFloat(jQuery("#ige").val()) * 100.0) / 100.0;
jQuery("#ige").val(ige_value);
var sba_value = Math.round(parseFloat(jQuery("#sba").val()) * 100.0) / 100.0;
jQuery("#sba").val(sba_value);
var total = ige_value + sba_value;
jQuery("#result").val(total.toFixed(2));
});
JavaScript所做的是寻找 “#ige”或“#sba”中的更改,并进行适当的计算。这两个输入文本字段的值也会根据您的规则进行更改。
这是一个用于测试的新jsFiddle: