我想在C#中将124.33到124.50和124.57到125.00之类的值四舍五入

Ak *_*nki -1 c# windows rounding winforms

如果doublevalue = 124.75那么
如果doublevalue = 124.25那么它应该四舍五入到125.00 然后它应该四舍五入到124.50

简而言之,小数点后大于50的数字必须舍入到100而小于50应该舍入到50

请帮我搞定这类代码

dot*_*NET 5

只需执行以下操作:

Math.Ceiling(YourValue * 2)/2
Run Code Online (Sandbox Code Playgroud)

说明

假设您的数字可以写成X + Y,其中X是整数部分,Y是小数部分.用2乘以它将使2X + 2Y,这里2X将是一个偶数,双整数部分.对于Y,有两种情况:

  • 如果Y >= 0.5,2Y将等于1 + Z(where 0 <= Z < 1),那么整个数字将是2X + 1 + Z.
  • 如果Y < 0.5,2Y将等于Z(where 0 <= Z < 1),那么整个数字将是2X + Z.

Math.Ceiling()在第一种情况下将返回2X + 2并且将其除以2将返回X + 1,这是最近的更大的整数,(3.7将成为4).

Math.Ceiling()在第二种情况下将返回2X + 1并且将其除以2将返回X + 0.5,或X.5,(3.3将成为3.5).