21

最終値に小さな問題があります。小数点以下 2 桁に丸める必要があります。

var pri='#price'+$(this).attr('id').substr(len-2);
            $.get("sale/price?output=json", { code: v },
               function(data){
                 $(pri).val(Math.round((data / 1.19),2));
            });
        });

どんな助けでも大歓迎です。

解決:$(pri).val(Math.round((data / 1.19 * 100 )) / 100);

4

2 に答える 2

77

文字列として (出力用に) 小数点以下 2 桁に視覚的にフォーマットする場合は、次を使用しますtoFixed()

var priceString = someValue.toFixed(2);

@David による回答には 2 つの問題があります。

  1. 結果を浮動小数点数として残すため、特定の結果を小数点以下の桁数を多くして表示する可能性が134.1999999999あり"134.20"ます。

  2. 値が整数または 10 分の 1 に丸められる場合、追加の小数値は表示されません。

    var n = 1.099;
    (Math.round( n * 100 )/100 ).toString() //-> "1.1"
    n.toFixed(2)                            //-> "1.10"
    
    var n = 3;
    (Math.round( n * 100 )/100 ).toString() //-> "3"
    n.toFixed(2)                            //-> "3.00"
    

また、上で見たように、 を使用するtoFixed()と入力もはるかに簡単になります。;)

于 2013-02-02T21:45:31.000 に答える
13

数値に 100 を掛けて四捨五入し、結果の数値を 100 で割るだけです。

于 2013-02-02T21:33:51.143 に答える