浮点型float数据挟制转换成int整型

浮点型float数据强制转换成int整型

 

问题:如下代码 想获取某两个Decimal类型数之间的商的大小,结果偶尔出错(请注意是 偶尔)             

Decima t1;

Decima t2;

int shang =Convert.ToInt32(t1 / t2) ;

解决方法:将Decimal类型数据强制转换成INT整型时  会有四舍五入的过程。如下,需要用Math.Truncate方法来取整数位。所以区商时必须用此方法取整

问题代码:

Decima t1=1.2m;

Convert.ToInt32(t1)  得到1

Decima t2=1.7m;

Convert.ToInt32(t2)  得到2

改成以下代码后:

 

Decima t1=1.2m;

Convert.ToInt32(Math.Truncate(t1))  得到1

Decima t2=1.7m;

Convert.ToInt32(Math.Truncate(t2))  得到1

 

1楼ahdung
纠正,decimal不属于浮点型;c#里float特指单精度浮点数这一种数据类型,再用这个词泛指浮点数不恰当。