我在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.请帮助我得到解决方案,我将得到准确的结果
答案 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