Math.Round问题3.75

时间:2013-02-13 19:34:18

标签: .net rounding

如何将Math.Round打造成3.75到3.7?

我尝试过以下选项:

Math.Round(3,75d,1,MidpointRounding.AwayFromZero) == 3.8
Math.Round(3,75d,1,MidpointRounding.ToEven) == 3.8

编辑: 一些背景。我需要3.6,3.5,4.2和3.7的平均值,但要求是它应该是3.7超过3.8。

3 个答案:

答案 0 :(得分:2)

我认为你不能用Math.Floor指定小数精度。但你可以尝试:

Math.Floor(num * 10) / 10

我相信Math.Floor会返回一个双精度数。所以这应该有用。

答案 1 :(得分:0)

n = 3.75;
a = System.Math.Round (n, 2, MidpointRounding.ToEven);       // 3.70
b = System.Math.Round (n, 2, MidpointRounding.AwayFromZero); // 3.80

也尝试Math.Floor

使用a进行工作!

答案 2 :(得分:0)

所以,而不是传统的规则= x.5 = x + 1即。 1.04轮到1.0和1.05回合到1.1。你想永远下台吗?

您可以使用Floor执行此操作(如之前的回复中所示),但我认为这会给出负数的问题 - 您必须进行一些测试(所以您需要使用'if'子句来如果你的号码是<0,请使用天花板。