java 0.05_在Java中四舍五入至最接近0.05的最佳方法

请考虑对除食品之外的所有商品加收10%的税。此外,进口商品还需支付5%的附加税。

如果音乐CD的成本是12.49。该项目的税将是1.499。如果进口一瓶香水的价格为47.50,则该商品的税费为7.125

有一项政策规定应将某项商品的税额四舍五入至最接近的0.05。因此,应将1.499舍入为1.5,并将7.125舍入为7.25。

以上舍入要求可以使用以下逻辑实现:

(float) Math.ceil(taxAmount / 0.05f) * 0.05f;

将税项加到商品成本中,得出:

音乐CD:12.49 + 1.5 = 13.99盒进口巧克力:47.50 + 7.25 = 54.65。

我遇到以下输入问题:

如果进口一盒巧克力的价格为11.85,则税为0.5925

使用四舍五入策略,四舍五入后的税率为0.6。

当我们添加均为浮点数的11.85 + 0.6时,结果为12.450001。与其他输入不同,此特定输入给出许多小数位,而不是其他输出中的2个小数位。

我尝试使用BigDecimal而不是float来存储标度设置为2个小数位的所有值。这种方法的问题在于,如果未指定舍入策略,则在某些情况下bigDecimal将引发异常。为BigDecimal提供舍入策略会导致使用使用提供给BigDecimal的舍入策略对项目成本和适用税款的总和进行舍入,从而更改所需的输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值