gpt4 book ai didi

c# - 数学.Round double .5

转载 作者:行者123 更新时间:2023-11-30 19:09:45 26 4
gpt4 key购买 nike

假设:

Math.Round(2.5) //2.0
Math.Round(-2.5) //-2.0
Math.Round(2.5,MidpointRounding.ToEven) // 2.0
Math.Round(2.5,MidpointRounding.AwayFromZero) //3.0

问题:如果我用 -77777777.5 更改数字,为什么结果是 -77777778.0 而不是 -77777777.0

Math.Round(-77777777.5) // -77777778.0
Math.Round(-77777777.5,MidpointRounding.AwayFromZero) // -77777778.0
Math.Round(-77777777.5,MidpointRounding.ToEven) // -77777778.0

最佳答案

默认MidPointRounding模式是 ToEven。在这种模式下,如 documentation 所解释的那样(其中 a 是输入值),

The integer nearest a. If the fractional component of a is halfway between two integers, one of which is even and the other odd, then the even number is returned.

-77777777.5 有两个最接近的整数 -77777777-77777778 但后者是偶数,因此返回的是那个.

AwayFromZero 模式下,-77777778 显然比 -77777777 离零更远。

关于c# - 数学.Round double .5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23236468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com