gpt4 book ai didi

java - java Math 包中 0.555 的舍入模式不起作用

转载 作者:行者123 更新时间:2023-12-02 08:55:07 25 4
gpt4 key购买 nike

我的问题如下,我使用舍入模式来舍入和截断一些数量,但没有一个枚举适用于我的客户需要的业务规则,我给出以下示例:

new BigDecimal(5.551).setScale(2, RoundingMode.[ENUM]) <-- DEberia regresar 5.55 OK
new BigDecimal(5.554).setScale(2, RoundingMode.[ENUM]) <-- DEberia regresar 5.55 OK
new BigDecimal(5.555).setScale(2, RoundingMode.[ENUM]) <-- DEberia regresar 5.55 It should be 5.56
new BigDecimal(5.559).setScale(2, RoundingMode.[ENUM]) <-- DEberia regresar 5.56 OK

我曾经使用过 HALF_DOWN,这是最接近的一个,但我遇到了这种情况,其中我有纯五,所以它不再起作用了。

最佳答案

按如下方式进行:

import java.math.BigDecimal;
import java.math.RoundingMode;

public class Main {
public static void main(String[] args) {

System.out.println(new BigDecimal(String.valueOf(5.551)).setScale(2, RoundingMode.HALF_UP));
System.out.println(new BigDecimal(String.valueOf(5.554)).setScale(2, RoundingMode.HALF_UP));
System.out.println(new BigDecimal(String.valueOf(5.555)).setScale(2, RoundingMode.HALF_UP));
System.out.println(new BigDecimal(String.valueOf(5.559)).setScale(2, RoundingMode.HALF_UP));
}
}

输出:

5.55
5.55
5.56
5.56

关于java - java Math 包中 0.555 的舍入模式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60534897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com