0

次の Jquery スクリプトを使用して、請求書の合計をリアルタイムで計算しています。問題は、小計を小数点以下 2 桁に四捨五入できないことです。

行を追加すると:

 subtotal= (subtotal).toFixed(2);

subtotal += parseFloat(rawValue);

またはこれを試してください:

subtotal += parseFloat(rawValue).toFixed(2);

スクリプトが壊れているようで、何も得られません。VAT と総計を四捨五入することができましたが、何らかの理由で小計を取得できません。:-S .

           <script type="text/javascript">
           $(document).ready(function () {
              // Calculate sub total
              $('input').on('keyup', function () {
            var rawValue, subtotal = 0;
    $('span[id^="linetotal"]').each(function(i, elem){
         rawValue = $.trim($(this).text());
         if(rawValue == '') rawValue = 0;
         discount = $('#discount').val();
         subtotal += parseFloat(rawValue);
    });
    $('#subtotal').text(subtotal - discount);
    $('#subtotalT').val(subtotal - discount);

    // Calculate vat amount       
        var vatrate = '<?php echo($vatrate);?>';
        subtotal =  $('#subtotal').text(),
               totalprice = parseFloat(subtotal);
                vatamount = (totalprice / 100 * vatrate).toFixed(2);
            $('#vat').text(vatamount);
            $('#vatT').val(vatamount);

    // Calculate grand total
    vatamounttoadd = parseFloat(vatamount);
    subtotaltoadd = parseFloat(subtotal);
    grandtotal = (subtotaltoadd + vatamounttoadd).toFixed(2);
    $('#grandtotal').text(grandtotal);
    $('#grandtotalT').val(grandtotal);

               });  });
           </script>
4

2 に答える 2

1

数値に 100 を掛けてから、通常どおり丸めます。つまり、roundceil、またはfloorを使用してから、100 で割ります。

jsfiddle で簡単な例を作成しました。「実行」をクリックするだけです。http://jsfiddle.net/rHwVz/2/

function round_that(round_number){
    ceil_number = Math.ceil(round_number * 100);
    ceil_number = ceil_number / 100;

    floor_number = Math.floor(round_number * 100);
    floor_number = floor_number / 100;

    rounded_number = Math.round(round_number * 100);
    rounded_number = rounded_number / 100;

    // This messy bit just makes a string to append to the document
    return_var = "<b>Number: " + round_number;
    return_var += "</b><br/>Ceil: " + ceil_number;
    return_var += "<br> Floor: " + floor_number + "<br>Round: " + rounded_number

    return return_var;
}
于 2013-07-17T11:32:49.437 に答える
0

私はこれを最後に使用しましたが、これは仕事をしているようです:)

trimsub = (subtotal - discount).toFixed(2);
$('#subtotal').text(trimsub);
$('#subtotalT').val(trimsub);
于 2013-07-17T12:15:40.127 に答える