首页 > 其他分享 >BigDecimal判断整除/除尽

BigDecimal判断整除/除尽

时间:2023-08-05 21:31:50浏览次数:33  
标签:BigDecimal 除尽 determine dividend 整除 被除数 divisor

  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;
}

标签:BigDecimal,除尽,determine,dividend,整除,被除数,divisor
From: https://blog.51cto.com/xyz5/6978370

相关文章

  • Java 取整可以被100整除
    Java取整与被100整除的科普在Java中,我们常常需要对数字进行取整操作。而有时候,我们需要确保一个数字是100的倍数。本文将介绍Java中取整的方法以及如何确保一个数字可以被100整除。取整方法在Java中,有多种取整的方法可以使用。下面我们将介绍四种常用的取整方法。向下取整(Fl......
  • jquery 整除
    实现jQuery整除功能介绍在jQuery中,没有直接提供整除的方法,但我们可以通过一些简单的步骤来实现这个功能。在本篇文章中,我将向你介绍如何用jQuery实现整除功能,帮助你快速掌握这个技巧。实现步骤下面是实现整除功能的步骤,我们将使用jQuery的一些方法和语法来完成这个过程......
  • 2023-07-18:给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空), 使得剩余元素的 和
    2023-07-18:给你一个正整数数组nums,请你移除最短子数组(可以为空),使得剩余元素的和能被p整除。不允许将整个数组都移除。请你返回你需要移除的最短子数组的长度,如果无法满足题目要求,返回-1。子数组定义为原数组中连续的一组元素。输入:nums=[3,1,4,2],p=6。输出:1。答......
  • 2023-07-18:给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空), 使得剩余元素的 和
    2023-07-18:给你一个正整数数组nums,请你移除最短子数组(可以为空),使得剩余元素的和能被p整除。不允许将整个数组都移除。请你返回你需要移除的最短子数组的长度,如果无法满足题目要求,返回-1。子数组定义为原数组中连续的一组元素。输入:nums=[3,1,4,2],p=6。输......
  • java获取bigdecimal的值
    Java获取BigDecimal的值在Java中,BigDecimal是一个用于表示高精度浮点数的类。它提供了精确的数值运算,特别适用于金融领域和其他需要高精度计算的场景。本文将介绍如何使用Java获取BigDecimal的值,并提供一些常用的操作示例。创建BigDecimal对象要创建一个BigDecimal对象,可以使用......
  • 整除分块(数论分块)
    整除分块是为了解决一个整除的求和的问题:sum(floor(n/i))(1<=i<=n) ,如果直接暴力计算复杂度O(n),但整除分块的复杂度为O(2sqrt(n)),其中的2为常数,可以忽略,那么复杂度为O(sqrt(n))下面给出整除分块的模板代码#include<bits/stdc++.h>#definelllonglongusingnamespacestd;ll......
  • 踩坑日记:BigDecimal四大坑,真的会用BigDecimal?
    一、前言最近在项目中使用BigDecimal存储订单的数量,数据库保留三位小数。需求是数量变化了就会有其他操作,头脑发热顺手写了个equals进行判断是不是相等!后来怎么测都是不相等!百思不得其解,看了一下equals方法才知道!BigDecimal值的比较官方推荐是compareTo的,如果数据库没有保留小数,用e......
  • Java 中 BigDecimal 类型的变量的使用
    BigDecimal类的作用:Java的BigDecimal类用于进行高精度的十进制运算,避免了使用浮点数造成的精度丢失问题。 BigDecimal提供了许多方法来执行基本的数学运算,如加减乘除、比较、区域等。 BigDecimal类的常见用法示例:1、创建BigDecimal对象:BigDecimalnumber=......
  • BigDecimal
    BigDecimal去一家公司笔试遇到一个这样的问题,问输出结果:BigDecimalbigDeciml1=newBigDecimal(2);BigDecimalbigDeciml2=newBigDecimal(2.1);BigDecimalbigDeciml3=newBigDecimal("2.1");结果:22.1000000000000000888178419700125232338905334472656252.1......
  • 背包DP-贪心-1262. 可被三整除的最大和
    1262.可被三整除的最大和DescriptionDifficulty:1762RelatedTopics:贪心,数组,动态规划,排序给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。示例1:输入:nums=[3,6,5,1,8]输出:18解释:选出数字3,6,1和8,它们的和是18(可被3整除的最大和)。示......