如何将小数转换为整型?


当前回答

十进制d = 5.5;

int i = decimal.ToInt32(d);// you will get i = 5

参考:链接文本

其他回答

四舍五入小数到最接近的整数

decimal a ;
int b = (int)(a + 0.5m);

当a = 49.9时,b = 50

当a = 49.5时,b = 50

当a = 49.4时,b = 49,以此类推。

系统。Decimal实现了IConvertable接口,该接口有一个ToInt32()成员。

调用System.Decimal.ToInt32()工作吗?

使用转换。从mscorlib中的ToInt32

decimal value = 3.14m;
int n = Convert.ToInt32(value);

看到MSDN。你也可以使用Decimal.ToInt32。同样,请参见MSDN。最后,你可以直接转换为

decimal value = 3.14m;
int n = (int) value;

它使用显式强制转换操作符。看到MSDN。

快速舍入的一个巧妙技巧是在将小数点转换为整型之前加上。5。

decimal d = 10.1m;
d += .5m;
int i = (int)d;

仍然保留i=10,但是

decimal d = 10.5m;
d += .5m;
int i = (int)d;

四舍五入,使i=11。

十进制d = 5.5;

int i = decimal.ToInt32(d);// you will get i = 5

参考:链接文本