0
点赞
收藏
分享

微信扫一扫

BigDecimal判断整除/除尽

若如初梘 2023-08-05 阅读 64
  1. 整除:在除法中只有被除数、除数和商都是整数的情况下,才可以说是“整除”。
  2. 除尽:在除法中只要除到某一位时没有余数,不管被除数、除数和商是整数还是小数,都可以说是“除尽”。

BigDecimal判断是否能被整除

/**
* 判断被除数是否能被除数整除
*
* @param dividend 被除数
* @param divisor  除数
* @return 是-true,否-false
*/
public Boolean remainderZero(BigDecimal dividend, BigDecimal divisor) {
    //TODO divisor需判断不为0
    //默认判断能整除
    Boolean determine = true;
    //特殊情况下1.000000000002/1=1 不能使用dividend.divide(divisor, 10, ROUND_HALF_UP)保留10位小数的方式
    try {
        BigDecimal result = dividend.divide(divisor);
        //取整判断是否与结果相同
        BigDecimal number = result.setScale(0, BigDecimal.ROUND_DOWN);
        determine = result.compareTo(number) == 0;
    } catch (ArithmeticException exception) {
        //除不尽情况
        determine = false;
    }
    return determine;
}

BigDecimal判断是否能被除尽

/**
* 判断被除数是否能被除数除尽
*
* @param dividend 被除数
* @param divisor  除数
* @return 是-true,否-false
*/
public Boolean completeDivide(BigDecimal dividend, BigDecimal divisor) {
    //TODO divisor需判断不为0
    //默认判断能除尽
    Boolean determine = true;
    try {
        //不报错则说明能被除尽
        dividend.divide(divisor);
    } catch (ArithmeticException exception) {
        //除不尽情况
        determine = false;
    }
    return determine;
}

举报

相关推荐

判断整除-dp-取余

判断是否能被5整除

【C语言】判断输入是否能被5整除

整除

BigDecimal

BigDecimal运算

一、BigDecimal

0 条评论