2

私は計算の問題で立ち往生していたc#言語でmvc3を使用しています.ここでは、3つのプロパティQty、Cost、およびtotalpriceにdouble型変数を使用しています

ここで totalprice=Qty*Cost;

小数点なしで製品の合計価格を取得したいという要件があります。たとえば、qty=14.3 の場合、cost=15 です。次に、Java スクリプト/C# で合計価格 214.5 を取得します

しかし、私は 214 が必要です。これを解決するには、Math.Floor(214.5) を使用して 214 を取得しました。しかし、Qty=18.9 で cost=1500 の場合。次に、javascript または C# の乗算で、合計価格 = 28349.999999999996 を取得しています。正しい結果は 28350 である必要があります。両方の結果を正確に取得するソリューションを取得するのを手伝ってください

4

3 に答える 3

2

C#であなたに応じて選択してください。

-3        -2        -1         0         1         2         3
 +--|------+---------+----|----+--|------+----|----+-------|-+
    a                     b       c           d            e

                       a=-2.7  b=-0.5  c=0.3  d=1.5  e=2.8
                       ======  ======  =====  =====  =====
Floor                    -3      -1      0      1      2
Ceiling                  -2       0      1      2      3
Truncate                 -2       0      0      1      2
Round (ToEven)           -3       0      0      2      3
Round (AwayFromZero)     -3      -1      0      2      3

JavaScript では次のようにします。

var qty=qty.toFixed(1);
var cost=cost.toFixed(1);
var totalprice=Math.round(qty*cost);
于 2013-03-11T06:42:52.260 に答える
1

Math. round(); を使用できます。これで問題は解決します。

Math.round(214.5- .1);
于 2013-03-11T06:42:47.850 に答える
1

この質問にはすでに回答があります: Javascript 浮動計算エラー

たとえば、toFixed() を使用できます: (1.2 - 1).toFixed(1) * 1 // 0.2

于 2013-03-11T06:46:10.987 に答える