C# 是否有一种方法可以根据值是大于0.5还是小于0.5来确定地板/天花板?

C# 是否有一种方法可以根据值是大于0.5还是小于0.5来确定地板/天花板?,c#,.net,math,rounding,floor,C#,.net,Math,Rounding,Floor,我正在尝试对我的值进行四舍五入,以便如果它是0.5或更大,它将变为1,否则它将变为0。例如: 3.7 -> 4; 1.3 -> 1; 2.5 -> 3; ... 有什么想法吗 Math.Round(3.7,MidpointRounding.AwayFromZero); 在上面的例子中,我使用了AwayFromZero进行四舍五入,因为默认值是银行家的四舍五入,所以如果分数为0.5,则四舍五入到最接近的偶数。因此,3.5变为4(最接近的偶数),但2.5变为2(最接近的偶数)

我正在尝试对我的值进行四舍五入,以便如果它是
0.5
或更大,它将变为
1
,否则它将变为
0
。例如:

3.7 -> 4;
1.3 -> 1;
2.5 -> 3;
...
有什么想法吗

Math.Round(3.7,MidpointRounding.AwayFromZero);


在上面的例子中,我使用了
AwayFromZero
进行四舍五入,因为默认值是银行家的四舍五入,所以如果分数为0.5,则四舍五入到最接近的偶数。因此,3.5变为4(最接近的偶数),但2.5变为2(最接近的偶数)。因此,您可以选择一种不同的方法,如上图所示,使3.5到4和2.5到3。

最简单的方法是将0.5添加到输入中,然后将其转换为int。

我最后到达,因此我将告诉您一些不同的内容。您可以通过不使用双精度
0.5
四舍五入到
1
!使用
decimal
s<代码>双精度
没有“精确”的数字是不好的

启动这段代码并享受乐趣(请注意,要在ideone上运行它,我必须对其进行一些修改,以使其达到1.5:)

围捕

Math.Round(3.5, 0, MidpointRounding.AwayFromZero) -> 4
四舍五入

Math.Round(3.5, 0, MidpointRounding.ToEven) -> 3

数学循环不起作用吗?或者你有没有具体的案例没有展示?谢谢,我现在试过了,它似乎起作用了。我在尝试这里建议的方法,这就是为什么我认为我需要其他东西。如果你愿意,将其作为答案发布,我会将其标记为答案。你可以接受manojlds,因为他已经发布了与我将发布的内容相同的内容。关于C#舍入,你需要了解的所有信息都可以在谢谢中找到,为什么3.5变为4,而2.5变为2?我应该像你展示的那样使用AwayFromZero吗?“我正在阅读你现在发布的链接。@JoanVenge-就像我说的,默认值是银行家舍入,这就是它的工作原理。”。它将0.5向最近的偶数方向旋转。因此,3.5变为4(最接近的偶数),2.5变为2(最接近的偶数)。这是默认设置。所以,当你使用数学时,你必须从零开始使用AwayFromZero。
Math.Round(3.5, 0, MidpointRounding.ToEven) -> 3