我怎样才能使 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。
我认为您不能使用Math.Floor
. 但你可以尝试:
Math.Floor(num * 10) / 10
我相信Math.Floor
返回双倍。所以这应该有效。
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
您的工作!
因此,而不是=x.5 = x+1的常规规则,即。1.04 轮到 1.0 和 1.05 轮到 1.1。你想永远下去吗?
您可以使用 Floor 来执行此操作(如之前的回复所示),但我认为这会给负数带来问题 - 您必须进行一些测试(因此您需要使用 'if' 子句来代替使用 ceiling如果您的号码<0。