日期:2014-05-17  浏览次数:20957 次

问个计算问题。为什么结果不正确
 huandao = Convert.ToInt32(Convert.ToDecimal(this.txtQRNum.Text) / Convert.ToDecimal(this.txtHdzq.Text)) * (Convert.ToDecimal(this.txtHdsj.Text) / 60);





this.txtQRNum.Text =150
this.txtHdzq.Text=40
this.txtHdsj.Text=1200
为什么 huandao在vs2008里计算结果是80而不是60

------解决方案--------------------
Convert.ToInt32(3.75)=3 
所以60
------解决方案--------------------
微软默认的舍入规则是4舍6入5成双;所以你要确定这个规则符合你的规则,要不就最好用显示方法 Math.Celling 或者Floor 方法
下面2个值在 d为2.5 或者 3.5 是不同的。自己体会吧。

            decimal d = Convert.ToDecimal("3.5");
            //decimal d = Convert.ToDecimal("2.5");
            int i = Convert.ToInt32(d);
            decimal huandao = Math.Floor(d);