2015-06-22 40 views
-3

我想用一个整数将2个地方的十进制数进行舍入。舍入到0的位置#

例:3.772.002,47 ---小数 3.772.003

即时通讯使用此代码,但没有成功:

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

任何人都可以帮我吗? 谢谢。

+1

为什么会3772002,47轮到377200 ** 3 **? – dasblinkenlight

+1

如果你想四舍五入,有一个'Math.Ceiling()'。 – xanatos

+1

我很困惑。你的'.'是千位分隔符,'''是小数点分隔符。但是当你四舍五入时,你的'3772002.47'将会是'3772003'。你想用“天花板”把它围起来吗? –

回答

1

您需要的结果转换为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 - 就像是在注释中说下面的问题。

+0

不,因为天花板轮总是起来,我只想当小数点位置是> = 5 – userprofile1

+1

@ userprofile1所以有什么问题?如果您提出,f.e'3 772 002,47'应该是四舍五入到'3 772 002',因为分数<5。 – 2015-06-22 10:17:34

0

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