2013-10-22 98 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嗎? –