如何修复javascript上出现的计算错误以及c#

时间:2013-03-11 06:40:52

标签: javascript c#-4.0

我在c#语言中使用mvc3,我遇到了计算问题。我在3个属性中使用双重类型变量数量,成本和总价格

这里totalprice =数量*成本;

我有要求我想要获得没有小数的产品的总价格。例如,如果qty = 14.3,则成本= 15。然后在java脚本/ C#上我将得到总价214.5

但是我需要214.要解决这个问题,我使用Math.Floor(214.5)得到214.但是当Qty = 18.9且cost = 1500时。然后在javascript或C#乘法,我得到总价格= 28349.999999999996,正确的结果应该是28350.请帮助我得到解决方案,我将得到准确的结果

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

你可以使用Math.round();这解决了你的问题。

Math.round(214.5- .1);

答案 2 :(得分:1)

这个问题已在这里得到答案:Javascript floating calculation error

你可以使用toFixed()例如:(1.2 - 1).toFixed(1)* 1 // 0.2