`
wang_zhi_peng2007
  • 浏览: 251924 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

BigDecimal的加减乘除及比较大小

 
阅读更多

 

    BigDecimal的加减乘除及比较大小

 

import java.math.BigDecimal;
import static java.lang.System.out;
public class BaseClass {
    public static void main(String[] args) {
        BigDecimal num1 = new BigDecimal("100");  
        BigDecimal num2 = new BigDecimal("50");  
        
        //加法
        BigDecimal result1 = num1.add(num2);
        out.println("和    是   :  " + result1);
        
        //减法 
        BigDecimal result2 = num1.subtract(num2);
        out.println("差    是   :  " + result2);
        
        //乘法
        BigDecimal result3 = num1.multiply(num2);
        out.println("积    是   :  " + result3);
        
        //除法
        BigDecimal result4 = num1.divide(num2);
        out.println("商    是   :  " + result4);
        
        //比较
        BigDecimal num = new BigDecimal("100");     //用做比较的值  
        out.println(num1.compareTo(num2));            //大于 时,返回 1 
        out.println(num.compareTo(num1));            //等于 时,返回 0  
        out.println(num2.compareTo(num1));            //小于 时,返回 -1
        
        out.println(num1.min(num2));                //求两个数的最小值,返回小的数
        out.println(num1.max(num2));                //求两个数的最大值,返回大的数
        
//        compareTo方法比较时,不同于equals方法,需要两边都不为null,否则会报空指针异常,
//        源码如下
//        public int compareTo(BigDecimal val) {
//            // Quick path for equal scale and non-inflated case.
//            if (scale == val.scale) {
//                long xs = intCompact;
//                long ys = val.intCompact;
//                if (xs != INFLATED && ys != INFLATED)
//                    return xs != ys ? ((xs > ys) ? 1 : -1) : 0;
//            }
//            int xsign = this.signum();
//            int ysign = val.signum();
//            if (xsign != ysign)
//                return (xsign > ysign) ? 1 : -1;
//            if (xsign == 0)
//                return 0;
//            int cmp = compareMagnitude(val);
//            return (xsign > 0) ? cmp : -cmp;
//        }

//        max/min方法源代码如下
//        public BigDecimal max(BigDecimal val) {
//            return (compareTo(val) >= 0 ? this : val);
//        }
//        public BigDecimal min(BigDecimal val) {
//            return (compareTo(val) <= 0 ? this : val);
//        }
    }
}

 

 

分享到:
评论

相关推荐

    Java中BigDecimal的加减乘除、比较大小与使用注意事项

    `compareTo()`方法用于比较两个`BigDecimal`对象的大小,返回值为: - `-1`表示第一个对象小于第二个; - `0`表示两者相等; - `1`表示第一个对象大于第二个。 ```java BigDecimal num1 = new BigDecimal("0"); ...

    加减乘除精确算法

    总的来说,精确的加减乘除算法在Java编程中主要通过BigDecimal类来实现,它能够解决浮点数运算的精度问题,适用于金融、科学计算等对精度要求高的场景。使用这样的工具类,开发者可以避免因为数据类型的限制而产生的...

    js_bigdecimal_1_0_1.zip

    1. **大数加减乘除**:支持两个大数之间的加法、减法、乘法和除法操作,确保结果的精度不受影响。 2. **比较操作**:可以比较两个大数的大小,支持等于、小于、大于等关系判断。 3. **格式化输出**:提供格式化数字...

    java_资金运算工具类_提供精确的加减乘除法等运算

    一些工具类代码块的集合: 提供精确的加法运算 提供精确的减法运算 提供精确的乘法运算 精确的除法运算. 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指定精度,...比较大小 获取自己想要的数据格式

    Java中BigDecimal精度和相等比较的坑

    3. 在进行加减乘除操作后,根据需要使用 `setScale()` 方法调整精度,并选择合适的舍入模式(如 `RoundingMode.HALF_UP`)来处理四舍五入。 总之,理解和正确使用 `BigDecimal` 的精度和比较是避免在高精度计算中...

    Java中BigDecimal类的简单用法

    例如,当你需要进行货币的加减乘除时,直接使用double或float可能会造成几分钱的误差,这对于财务系统来说是不可接受的。使用BigDecimal类可以确保每一分钱都计算得准确。此外,BigDecimal类还支持舍入模式...

    运用BigDecimal精确计算

    在上述代码中,我们演示了`BigDecimal`的基本用法,包括加减乘除运算以及设置精度和舍入模式。通过这样的方式,我们可以确保在计算过程中不会因为浮点数的精度问题而产生错误的结果。在实际项目中,结合`Arith.java`...

    Java编写的大数运算

    `BigDecimal`提供了构造函数来创建任意精度的数字,以及多种方法来进行加、减、乘、除等运算,并且可以控制舍入模式,避免浮点数运算中的精度损失问题。 在项目描述中提到了“运用了类的特性”,这通常意味着项目中...

    JAVA中浮点数的运算

    例如,`DecimalConvertUtils.java`可能就是一个用于转换和操作`BigDecimal`的工具类,可能包含了将基本类型的浮点数转换为`BigDecimal`,以及进行加减乘除、取模等运算的方法。 `BigDecimal`类提供了丰富的API,如`...

    S2dMath:一个简单的数学库,主要用于使用简单的 API 执行 BigDecimal Math

    在S2dMath中,你可以找到如加减乘除、求幂、取余、比较大小等基本的数学操作,这些操作都进行了优化,使得在处理大数运算时既精确又高效。例如,`add()`方法用于两数相加,`subtract()`用于相减,`multiply()`执行...

    BigNumber-源码.rar

    `BigDecimal`是基于Java的大数运算库,它提供了丰富的操作方法,能够保证在执行加减乘除等数学运算时的精度。本文将深入分析`BigDecimal`的源码,探讨其背后的实现原理。 1. **BigDecimal构造与初始化** `...

    bigNumber:用于将BigDecimal和BigInteger结合在一起的Java的bignum库

    3. **性能优化**:可能对某些常见操作进行了优化,比如大数的加减乘除,以提高计算速度。 4. **扩展功能**:可能包含了一些额外的数学函数,如幂运算、模逆、最大公约数和最小公倍数等。 5. **线程安全**:对于多...

    Android 计算器(仅限定两个数的运算)

    数值运算部分,我们通常会使用Java的内置运算符进行加减乘除。但是,Android提供了BigDecimal类,用于进行高精度的浮点数运算,以解决精度问题。在这个项目中,为了避免结果的精度损失,可以改用BigDecimal来进行...

    Joda-Money-用于表示货币金额的Java库

    Joda-Money提供了丰富的操作方法,如加减乘除、比较、格式化等: - `add(Money)`和`subtract(Money)`进行金额的加减操作。 - `multiply(BigDecimal)`和`divide(BigDecimal)`进行乘除运算,注意结果可能需要四舍五入...

    java大数类.pdf

    它提供了许多方法来进行加减乘除以及幂运算,同时还能进行格式化输出。虽然在示例中没有直接使用`BigDecimal`,但在需要精确计算的场景下,例如金融计算,`BigDecimal`是不可或缺的。 在示例2中,计算n的阶乘,使用...

    java模拟Windows的计算器

    4. **基本运算**:计算器的核心是执行加减乘除等基本运算。这需要使用到Java的数学库,如`Math.addExact`、`Math.subtractExact`、`Math.multiplyExact`和`Math.divide`等方法。为了防止溢出,对于整数运算,可以...

    面试题经典

    - **基本运算**:加减乘除等基本数学运算。 - **比较运算**:使用比较运算符(如==, !=, &lt;, &gt;)来判断两个数的关系。 - **逻辑运算**:利用逻辑运算符(如&&, ||, !)来构建复杂的条件判断。 - **控制流程**:使用if/...

    一些groovy的实例代码--免费下载

    - Groovy的map和reduce函数方便地进行罗马数字的加减乘除。 7. **随机数生成** - `new Random().nextInt(max)`生成指定范围内的随机数。 8. **更随机的随机数** - 通过系统时间或其他不可预测源增加随机性。 9...

    BIG number.zip

    2. **大数运算**:大数运算包括加减乘除、模运算、幂运算等,这些运算比标准整数运算复杂,因为它们需要考虑进位和借位。大数算法通常采用分治策略,比如Karatsuba算法和Toom-Cook算法用于快速乘法。 3. **大数比较...

    bignumber.js-master.zip

    《深入理解JavaScript中的大数运算库bignumber.js》 在JavaScript中,处理大数(超过Number.MAX...无论是简单的加减乘除,还是复杂的数学运算,bignumber.js都能游刃有余,是金融、科学计算等领域开发者不可或缺的库。

Global site tag (gtag.js) - Google Analytics