2013-10-22 100 views
-1

小数我有以下为获得三个文本字段的总和值这段JavaScript代码。 当显示结果时,我需要显示两位小数。请帮帮我。 我已经尝试了很多方法来获取小数位,但找不到方法。显示只有两个数字结果

<script type="text/javascript"> 
     function num(id) { 
      var e = document.getElementById(id); 
      if (e != null) { 
       var v = e.value; 
       if (/^\d+$/.test(v)) { 
        return parseInt(v, 10); 
       } 
      } 
      return 0; 
     } 

     function sum() { 
      var v1 = num("contNo6_1"); 
      var v2 = num("contNo6_2"); 
      var v3 = num("contNo6_3"); 

      var r = document.getElementById("result"); 
      r.toFixed(2); 

      if (r != null) { 
       r.value = v1 + v2 + v3; 
      } 
     } 

     function addHandler(element, eventName, handler) { 
      if (element.addEventListener) { 
       element.addEventListener(eventName, handler, false); 
      } else if (element.attachEvent) { 
       element.attachEvent("on" + eventName, handler); 
      } 
     } 

     addHandler(window, "load", 
       function() { 
        addHandler(document.getElementById("contNo6_1"), "keyup", sum); 
        addHandler(document.getElementById("contNo6_2"), "keyup", sum); 
        addHandler(document.getElementById("contNo6_3"), "keyup", sum); 
       }); 
    </script> 
+0

你'NUM()'函数返回一个整数,或零。你不会得到那样的小数位。 – 2013-10-22 04:08:26

+0

哦,现在只有我看到了,其实这一个我从谷歌搜索,嘟嘟指导我这样做。 – hasiwarna

回答

0

num()函数返回整数或零,所以你永远不会得到一个小数位显示。更改num()处理浮点数是这样的:

function num(id) { 
     var e = document.getElementById(id); 
     if (e != null) { 
      var v = e.value; 
      if (/^[0-9]{1,}\.?[0-9]*$/.test(v)) { // New regex to accept 
               // number with decimal point 
      return parseFloat(v);    // parse for Float instead of Int 
      } 
     } 
     return 0; 
    } 

下面是一个updated fiddle

+0

KUDOS TO ALL .. – hasiwarna

+0

这是我的要求代码,谢谢Mike W. – hasiwarna

0

您可以在js中使用toFixed方法。

var value = 10.123349; 
var valueWithTwoDecimal = value.toFixed(2); 

/******* 
Output : 10.12 
*******/ 

http://jsfiddle.net/Aveendra/KggSC/

+0

OP已经在他的代码片段中使用'toFixed(2)'。你假设有小数位要显示,但他的'num()'函数不会返回任何。 – 2013-10-22 04:12:54

+0

@avendra。我已经测试过这个.toFixed()方法,但它不工作,PLZ寻找代码,如果可以给我适合那个ocde。 thnx – hasiwarna

+0

可以请你张贴一个jsfiddle吗? –