如何做BigDecimal模数比较

use*_*618 10 java bigdecimal

我对如何写一个简单的模数比较if语句感到困惑.我基本上只想检查当x是BigDecimal时x是20的倍数.谢谢!

Daw*_*ica 18

if( x.remainder(new BigDecimal(20)).compareTo(BigDecimal.ZERO) == 0 ) {
   // x is a multiple of 20
}
Run Code Online (Sandbox Code Playgroud)


Ale*_*lev 10

你应该使用remainder()方法:

BigDecimal x = new BigDecimal(100);
BigDecimal remainder = x.remainder(new BigDecimal(20));
if (BigDecimal.ZERO.compareTo(remainder) == 0) {
    System.out.println("x can be divided by 20");
}
Run Code Online (Sandbox Code Playgroud)