JQuery没有显示正确的十进制输出

时间:2016-02-08 20:16:20

标签: javascript jquery html css

我的问题是,当它在1-9之前时,一切都很好,最多两位小数,但是如果数字是第10位,那么我的脚本只显示一位小数。

200.19,5000.42,12.98<<没问题但是如果输出应该是123.10,它将显示123.1

这是我的代码:

jQuery(document).ready(function() {
  function ReplaceNumberWithCommas(yourNumber) {
    //Seperates the components of the number
    var n= yourNumber.toString().split(".");
    //Comma-fies the first part
    n[0] = n[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    //Combines the two sections
    return n.join(".");
  }

  function loanCalc() {
    //Get the parameter from the form
    var rate=jQuery('#start_rate').val();
    var priceValue=jQuery('#input_1_2').val();
    console.log("price value before"+priceValue);

    if(priceValue.indexOf('£') == 0) {
      var strEnd=jQuery('#input_1_2').val().indexOf(',') - 1;
      priceValue=parseInt(priceValue.substr(1,priceValue.strEnd))*1000;
    }else{
      priceValue=priceValue;
    }

    var princ = parseInt(priceValue);
    var term  = parseInt(jQuery('#input_1_3').val());

    var intr   = rate / 1200;
    console.log("price"+priceValue+" term"+term+" rate"+rate);
    var calculation = princ * intr / (1 - (Math.pow(1/(1 + intr), term)));

    console.log("paymenet"+calculation);

    var rePayment= calculation*term;
    var costOfCredit=princ-rePayment;
    //set the value

    jQuery('#figure').html('£'+ ReplaceNumberWithCommas(calculation.toFixed(2)));
    jQuery('#rate').html(rate+"%");

    jQuery('#total').html('£' + 
        ReplaceNumberWithCommas(rePayment.toFixed(2)));  

    jQuery('#credit').html('£' + ReplaceNumberWithCommas(
        Math.abs(costOfCredit.toFixed(2    ))));

正如你可能猜到的那样,我正在显示3个字段,计算,这是一个百分比,' rePayment'和' costOfCredit'。奇怪的是' rePayment'工作正常,显示第二个小数位,即使它的第10个/以零结束也没有问题。

所以我的问题是,你们可以帮助我找到我的问题是获得显示的第二个小数位吗?

1 个答案:

答案 0 :(得分:0)

当您致电Math.abs()时,它会将小数点后的2位数字符串转换回数字,这会丢失尾随的零。您应首先调用Math.abs(),然后在此处调用toFixed()以添加尾随零。

jQuery('#credit').html('£' +
    ReplaceNumberWithCommas(Math.abs(costOfCredit).toFixed(2)));