如何在Java中舍入货币值?

2022-09-04 23:44:32

好的,这是我的问题。基本上我有这个问题。

我有一个像.53999999这样的数字。如何在不使用任何数学函数的情况下将其舍入为54?

我猜我必须乘以100才能缩放它,然后除以?类似的东西?


问题在于金钱。假设我有50.5399999美元,我知道如何获得50美元,但我不知道如何获得美分。我可以得到.539999部分,但我不知道如何把它弄到54美分。


答案 1

我会使用类似的东西:

BigDecimal result = new BigDecimal("50.5399999").setScale(2, BigDecimal.ROUND_HALF_UP);

JavaWorld上有一篇很棒的文章叫做Make cents with BigDecimal,你应该看看。


答案 2

您应该使用小数或货币类型来表示货币,而不是浮点数。