如何检查一个数字是否有小数 place/is 整数?

How to check if a number has a decimal place/is a whole number?

我的输入字段 BigDecimal num 可能包含整数和浮点数。

num = 45
or 
num = 45.5343434

如果BigDecimal输入字段num包含小数位,那么我想将小数位限制为4位。

Desired Output : 45.5343 if input num = 45.5343434
Desired Output : 45 if input num=45

我该怎么做?

您对 BigDecimal 比例 感兴趣。

呼叫BigDecimal#scale.

BigDecimal x = new BigDecimal( "45.5343434" );
BigDecimal y = new BigDecimal( "45" );

x.scale(): 7

y.scale(): 0

您问的是:

I would like to limit the decimal places by 4

测试规模大于四。如果是,round.

    BigDecimal num = new BigDecimal(45);
    if (num.scale() > 4) {
        num = num.setScale(4, RoundingMode.HALF_UP);
    }
    System.out.println(num);

输出:

45

若有更多小数:

    BigDecimal num = new BigDecimal("45.5343434");

45.5343

您可以选择不同的舍入模式以满足您的要求。