注册
登录
C#/.net
在 C# 中将小数四舍五入到最接近的四分之一
返回
在 C# 中将小数四舍五入到最接近的四分之一
作者:
糖果
发布时间:
2024-04-06 05:32:03 (3月前)
c# 中是否有一种简单的方法可以将小数四舍五入到最近的四分之一 iex0、x.25、x.50 x.75 例如 0.21 将四舍五入为 0.25,5.03 将四舍五入为 5.0
在此先感谢您的帮助。
收藏
举报
3 条回复
1#
回复此人
糖果
|
2022-01-07 13-43
您可以使用此博客中给出的 UltimateRoundingFunction:http : //rajputyh.blogspot.in/2014/09/the-ultimate-rounding-function.html //amountToRound => input amount //nearestOf => .25 if round to quater, 0.01 for rounding to 1 cent, 1 for rounding to $1 //fairness => btween 0 to 0.9999999_. // 0 means floor and 0.99999… means ceiling. But for ceiling, I would recommend, Math.Ceiling // 0.5 = Standard Rounding function. It will round up the border case. i.e. 1.5 to 2 and not 1. // 0.4999999… non-standard rounding function. Where border case is rounded down. i.e. 1.5 to 1 and not 2. // 0.75 means first 75% values will be rounded down, rest 25% value will be rounded up. decimal UltimateRoundingFunction(decimal amountToRound, decimal nearstOf, decimal fairness) { return Math.Floor(amountToRound / nearstOf + fairness) * nearstOf; } 调用下面的标准四舍五入。即 1.125 将四舍五入为 1.25 UltimateRoundingFunction(amountToRound, 0.25m, 0.5m); 调用下面的四舍五入边界值。即 1.125 将四舍五入为 1.00 UltimateRoundingFunction(amountToRound, 0.25m, 0.4999999999999999m); UltimateRoundingFunction 不可能实现所谓的“银行家的舍入”,您必须使用 paxdiablo 的答案来获得该支持:)
编辑
2#
回复此人
糖果
|
2022-01-07 13-43
将其乘以四,根据需要将其四舍五入为整数,然后再次除以四: x = Math.Round (x * 4, MidpointRounding.ToEven) / 4; 舍入,和他们解释各种选项,可以在这个优秀的答案被发现这里:-)
编辑
登录
后才能参与评论