将十进制转换为整数

时间:2011-01-18 14:44:38

标签: c# asp.net

string retval;

retval = Decimal.ToInt32(1899.99M).ToString();

输出是1899.但我想如果小数更大.5然后输出是1900否则输出是1899.我怎么能这样做?提前谢谢!

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

使用Math.Round时,您可以选择四舍五入x.5

银行家的回合/回合甚至。避免偏差,有时会向上舍入(1.5 => 2),有时向下舍入(0.5 => 0),默认情况下,如果您未指定参数,则使用偏差。

Int32 i=Math.Round(d, MidpointRounding.ToEven);

你在学校学习的四舍五入,它总是向无穷大方向舍入(0.5 => 1,-0.5 => -1)

Int32 i=Math.Round(d, MidpointRounding.AwayFromZero);

答案 2 :(得分:1)

尝试类似:

Double d = 1899.99;
Int32 i = Math.Round(d);
String retval = i.ToString(CultureInfo.InvariantCulture);

答案 3 :(得分:0)

Decimal.ToInt32(Math.Round(1899.99M)).ToString();