C# 四舍五入到0摄氏度#

C# 四舍五入到0摄氏度#,c#,C#,我想把小数点后两位四舍五入为整数 例:3.772.002,47--十进制 3.772.003 我正在使用此代码,但没有成功: ssOut = Math.Round(ssIn, ssDecimal, MidpointRounding.AwayFromZero); 有人能帮我吗? 谢谢。您需要将结果强制转换为int: var ssOut = (int)Math.Round(ssIn, 0, /* zero because you want t

我想把小数点后两位四舍五入为整数

例:3.772.002,47--十进制 3.772.003

我正在使用此代码,但没有成功:

ssOut = Math.Round(ssIn, ssDecimal, MidpointRounding.AwayFromZero);
有人能帮我吗?
谢谢。

您需要将结果强制转换为
int

var ssOut = (int)Math.Round(ssIn,
                            0, /* zero because you want to cast to integer - no fraction part is needed */
                            MidpointRounding.AwayFromZero);
可以对以下重载执行相同的操作:

var ssOut = (int)Math.Round(ssIn, MidpointRounding.AwayFromZero);

但看起来您需要
Math.Ceiling
——就像下面的问题评论中所说的那样。

看起来您的输入可能是一个字符串。首先使用Float.Parse()或Double.Parse()在四舍五入之前将字符串转换为数字。

为什么3772002,47要四舍五入到3772003?如果要四舍五入,有一个
Math.天花()。您的
是千位分隔符,
是十进制分隔符。但当您将其四舍五入时,您的
3772002.47
将是
3772003
。你想用
上限来概括它吗?“没有成功”是什么意思?您是否遇到异常,或者返回的值是否不符合您的期望?如果是后者,返回了什么?因为如果我四舍五入1位3772002,5,现在我得到3772003否,因为上限总是向上四舍五入,我只想在小数点后>=5@userprofile1那么问题是什么呢?如果您提交,f.e
3 772 002,47
应四舍五入到
3 772 002
,因为分数小于5。