如何使用jquery实现小数和?

时间:2014-10-27 04:42:02

标签: javascript jquery

我做了一个脚本来对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" >

enter image description here

请有人帮我这个吗?

3 个答案:

答案 0 :(得分:3)

尝试使用parseFloat。这里使用的是不支持小数的整数。

使用toFixed(2);进行格式化

更多信息:Format number to always show 2 decimal places

答案 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:

jsFiddle