2016-01-21 85 views
0

請聽我說,這是我遇到的一個奇怪的錯誤。假設discountValue = 5grandTotal = 10discountShow將正確輸出並格式化結果。但是,如果grandTotalgreater999discountShow將輸出NaNjQuery計算(得到NaN,但只有當數量超過1000時)

function discount_compute() { 
    var discountValue = parseFloat($('#discount').val().replace(',', '.')); 
    var discountTotal = grandTotal * (1 - (discountValue/100)); 
    var discountShow = numeral(discountTotal.toFixed(2)).format('0,0.00'); 
    $('.net-total-discount').html(discountShow + " €"); 
    } 
+0

沒有真正足夠的信息。你從哪裏得到grandTotal?你確定它沒有逗號嗎?什麼是「數字」功能? –

+0

'parseFloat()'可能會給NaN。首先,將這些陳述分成單獨的一行;即從字段中獲取值,然後在一行代碼中調用'parseFloat()'。這樣可以更容易地進行調試,因爲您可以使用瀏覽器的開發工具來查看您傳遞給'parseFloat()'的值。 – Simba

+0

發佈您的'數字'功能。 – choz

回答

0

你可以試試這個。

變化format('0,0.00');format('0,0.[00]');

JsFiddle Demo

function discount_compute() { 
 
    var grandTotal = 10; 
 
    var discountValue = 5; 
 
    var discountTotal = grandTotal * (1 - (discountValue/100)); 
 
    var discountShow = discountTotal.toFixed(2) 
 
    var discountShow = numeral(discountTotal.toFixed(2)).format('0,0.[00]'); 
 
    document.write(discountShow + " €"); 
 
} 
 
discount_compute();
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js"></script>