根据用户选项设置BigDecimal RoundingMode而不使用if语句?

时间:2014-06-02 06:56:41

标签: java android bigdecimal

我使用RoundingMode.HALF_UP有大约400条语句,根据应用程序的性质,我希望用户能够在舍入模式之间进行选择。但是,如果可能的话,我对如何将其表示为变量感到茫然。由于令人难以置信的陈述数量,我想避免if陈述。

可以做我要问的事吗?

我试过了一个枚举,但这就是我所能想到的。其他一切都通过了大约一半。谷歌没有帮助。欢迎任何建议。

2 个答案:

答案 0 :(得分:1)

试试这个

RoundingMode roundingMode = ...;
...
BigDecimal bd3 = bd1.divide(bd2, 2, roundingMode);

答案 1 :(得分:1)

如果我没有错,那么您正在寻找用户选择与实际RoundingMode对象之间的映射以传递给您的计算。对于此RoundingMode提供values()方法,该方法返回所有可用的RoundingModes。您可以使用这些选项为您的用户提供选择

的选项
    RoundingMode[] modes = RoundingMode.values();
    for (RoundingMode roundingMode : modes) {
        System.out.println(roundingMode.name());
    }

选择值后,您可以通过以下方式找到要在计算中使用的RoundingMode对象:

      RoundingMode.valueOf(String) 

这将为您提供相应的RoundingMode

希望这有帮助。