读书人

问个计算有关问题。为什么结果不正确

发布时间: 2013-03-21 10:08:17 作者: rapoo

问个计算问题。为什么结果不正确
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);

读书人网 >C#

热点推荐