2012-11-11 27 views
2

我有一個非常困難的時間搞清楚如何顯示我的計算到.00小數位。它總是把它往上倒。如何讓我的腳本顯示小數點後兩位的計算

下面是代碼:

$(function() { 
    var $priceHolder = $('#creditsPrice'); 
    if ($priceHolder.size() === 1) { 
     $('#creditsNeeded').keyup(function(e) { 
      var $this = $(this), 
       url = $this.attr('rel'), 
       credits = parseInt($this.val(), 10); 

      if (credits <= 0) { 
       if ($priceHolder.is(':visible')) { 
        $priceHolder.hide(); 
       } 
       $priceHolder.hide(); 
       return; 
      } 

      if (!$priceHolder.is(':visible')) { 
       $priceHolder.show(); 
      } 

      url += '/' + credits; 

      $.ajax({ 
       method: 'get', 
       url: url, 
       dataType: 'json', 
       success: function(data) { 
        $('#js-price', $priceHolder).text(data); 
       } 
      }); 
     }); 
    } 
}); 
+0

歡迎來到SO--你能更精確一點:哪個變量應該圓整?你的代碼的哪一部分負責舍入到2位小數? – Mateng

+0

credits = parseInt($ this.val(),10);這是信用成本設計的地方。無論出於何種原因,我無法更改爲小數。這是繼承的代碼,但是我找不到其他地方會被覆蓋的代碼。 – ahurst

回答

2

如果你指的是credits變量,那是因爲你正在使用parseInt這也正是它聽起來像...解析你的電話號碼轉換爲一個int。相反,您可以使用credits.toFixed(2),這將返回四捨五入到最接近的百分之一的值。

+0

是的,那正是我想要完成的。如果我替換它,我沒有收到計算結果。 – ahurst

+0

調用'parseInt()'之前''this.val()'是什麼?在我們不知道輸入的情況下很難幫助調試腳本。我可能會誤導你我的原始答案,因爲你不能只調用'credits.toFixed(2)'...在這種情況下,它看起來像你想'credits = parseFloat($ this.val())。toFixed (2)'。 – Cecchi

+0

這個腳本是如何工作的,它是來自表單字段的信用額度,並且在數據庫中乘以一個值。在這種情況下,我們試圖乘以5 * 5.25。無論我嘗試過什麼,它都會以26美元而不是26.25美元的價格出現。 – ahurst

相關問題