【问题标题】:How do I fulfill these number rounding criteria?我如何满足这些数字舍入标准?
【发布时间】:2020-05-18 14:42:56
【问题描述】:

我查看了很多主题,但找不到这个具体的答案。 我正在验证控制器中的输入,规则是:

  1. 仅限正数
  2. 最多两位小数
  3. 四舍五入到 0.05(所以 0.08 = 0.1 和 0.13 = 0.15)

我一直在玩 .NET Fiddle,但使用各种风格的地板、天花板、圆形等还没有得到答案。

谢谢

编辑:建议的修复不适用于值 > 0 &&

【问题讨论】:

  • 请提供数据类型的示例代码。额外的测试数据和预期结果也会有所帮助 :: minimal reproducible example
  • INPUT 0.08 EXPECTED 0.1 INPUT 0.13 EXPECTED OUTPUT 0.15 如果它适用于这些,它可能适用于我所需的所有场景。
  • Math.Round(x * 20) / 20
  • 这能回答你的问题吗? How do I round to the nearest 0.5?

标签: c# rounding


【解决方案1】:

回复我的客户后,我可以确认 Arman 的回答符合我的要求:

Math.Round(x * 20) / 20

【讨论】:

    【解决方案2】:

    将您的评分乘以 2,然后使用 Math.Round(rating, MidpointRounding.AwayFromZero) 进行四舍五入,然后将该值除以 2。

    Math.Round(value * 2, MidpointRounding.AwayFromZero) / 2
    

    Original Post

    【讨论】:

    • 对于 0.13 和 0.8 的值,这将返回 0,这不是必需的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多