如何为数字创建Math.Round

时间:2010-10-13 09:44:34

标签: c# asp.net asp.net-3.5

如何制作圆形数字?

示例:3341.48至3342.00

4 个答案:

答案 0 :(得分:4)

似乎你总是想在这里围捕。在那种情况下使用

Math.Ceiling(3341.48)

这将返回3342。

如果要向最近的整数舍入,请使用

Math.Round(3341.48)

这将返回3341.请注意Bankers rounding是此处的默认设置,这可能会导致舍入X.50的一些意外结果。

答案 1 :(得分:0)

如果您希望3341.48向上舍入到3342,听起来您可能需要Math.Ceiling

decimal m = 3341.48m;
decimal roundedUp = Math.Ceiling(m);

这将始终向上舍入 - 例如,3341.0000001仍然会舍入到3342。如果那不是您所追求的,请指明您想要它的情况,以及您希望它向下舍入的情况。

请注意,这将舍入到3342而不是3342.00 - 它不会保留原始精度,因为您已使用Math.Ceiling要求输入整数值。

然后想要强制将精度设置为2是相对不常见的,但是可以除以100,然后在必要时再次乘以100。或者,如果您只需要输出,则应考虑适当地格式化结果,而不是更改值。

答案 2 :(得分:0)

如果要将Math.Round(number)舍入到最接近的整数,请使用number。 如果要将Math.Round(number,digits)舍入到指定数量的小数位,请使用number。 如果您想要舍入到更低/更高值,请改用Math.Floor(number) / Math.Ceiling(number)

答案 3 :(得分:0)

将货币金额汇总至5美分:

金额= 20 * int(金额/ 20)