我使用 C#编写了计费系统的应用程序。
总账单可以向上或向下四舍五入,以方便客户向收银员付款。这取决于以美分结尾的最后一个值。我使用数据类型作为十进制来进行计算。
当以美分 0.00、0.01、0.02 结尾时,将向下舍入为0.00
例子:
- 10.00、10.01 或 10.02 向下舍入到 10.00
- 10.10、10.11 或 10.12 向下舍入到 10.10
当以 0.03、0.04、0.05 美分结尾时,它将向上取整为0.05
例子 :
- 10.03、10.04 或 10.05 向上取整到 10.05
- 10.13、10.14 或 10.15 向上取整到 10.15
当以0.05、0.06 或 0.07 美分结束时,将向下舍入为0.05
例子 :
- 10.05、10.06 或 10.07 向下舍入到 10.05
- 10.15、10.16 或 10.17 向下舍入到 10.15
当以美分0.08 或 0.09 ** 结尾时,它将 **四舍五入为0.10
例子 :
- 10.08 或 10.09 向下舍入到 10.10
- 10.18 或 10.19 向下舍入到 10.20
现在的问题是我不能使用Math.Round因为答案不同并且不符合系统要求。假设我的总账单是 10.14,它将向下舍入到 10.10但答案应该向上舍入到 10.15。
我希望有人帮助我解决这个问题。