0

私は高速で静かなコードを持っていますが、一部の計算結果は非常に大きくフォーマットされており、取得された値は計算に入っていません。これを行う方法は、正しい結果を参照してください?

計算結果 (3 * 2215.40) が 3 646.20 であり、3.6450000000000005 でないことを望みます。

どのように?

コード - http://jsfiddle.net/bruno_aw/M7JZu/

$(".calc_cub").on("keyup", ".qtd", function(){
    var valorCub = $("#CUB").text();        
    var number = parseFloat(valorCub);  
    var qtd = +$(this).val();
    $(".total").text(number * qtd).val().toFixed(2);
});
4

3 に答える 3

1

最初にテキストから数字を取得する必要があります。.total にテキストを設定した後、.val() も呼び出しています。実際に行う必要があるのは$(".total").text((number * qtd).toFixed(2));

$(".calc_cub").on("keyup", ".qtd", function () {
    var valorCub = $("#CUB").text().split(' '); // returns ["Valor", "CUB", "R$", "1,215.40"]
    var number = parseFloat(valorCub[valorCub.length - 1].replace(',','')); // get last one in array and remove comma
    var qtd = +$(this).val();
    $(".total").text((number * qtd).toFixed(2));
});

http://jsfiddle.net/GMjjc/

于 2013-04-17T18:30:50.067 に答える
0

テキスト ブロックの文字列とフロートのセパレータを混同しました。これを試して;

http://jsfiddle.net/M7JZu/8/

JavaScript

$(".calc_cub").on("keyup", ".qtd", function () {
    var valorCub = $("#CUB").text();
    valorCub = parseFloat(valorCub.split('$ ')[1].replace('.', '').replace(',', '.'));
    var qtd = $(this).val();
    $(".total").text(valorCub * qtd);
});

出力のために、出力時に.バックを,(コンマ)に再度変換できます。

于 2013-04-17T18:30:48.127 に答える