BigInteger与BigDecimal高精度计算
2017-11-28 00:00
411 查看
package com.myclass.basicDataType; import java.math.BigDecimal; import java.math.BigInteger; //高精度计算 public class ArithUtils { /*BigInteger的加减乘除封装*/ public static BigInteger add(Integer num1,Integer num2){ BigInteger results = null; if(null!=num1&&null!=num2){ BigInteger b1 = new BigInteger(num1.toString()); BigInteger b2 = new BigInteger(num2.toString()); results = b1.add(b2); } return results; } public static BigInteger substract(Integer num1,Integer num2){ BigInteger results = null; if(null!=num1&&null!=num2){ BigInteger b1 = new BigInteger(num1.toString()); BigInteger b2 = new BigInteger(num2.toString()); results = b1.subtract(b2); } return results; } public static BigInteger multiply(Integer num1,Integer num2){ BigInteger results = null; if(null!=num1&&null!=num2){ BigInteger b1 = new BigInteger(num1.toString()); BigInteger b2 = new BigInteger(num2.toString()); results = b1.multiply(b2); } return results; } public static BigInteger divide(Integer num1,Integer num2){ BigInteger results = null; if(null!=num1&&null!=num2){ BigInteger b1 = new BigInteger(num1.toString()); BigInteger b2 = new BigInteger(num2.toString()); results = b1.divide(b2); } return results; } /*BigDecimal封装*/ public static BigDecimal add(Double num1,Double num2,int scale){ BigDecimal results = null; if(null!=num1&&null!=num2){ BigDecimal b1 = new BigDecimal(num1.toString()).setScale(scale, scale); BigDecimal b2 = new BigDecimal(num2.toString()).setScale(scale, scale); results = b1.add(b2).setScale(scale, scale); } return results; } public static BigDecimal substract(Double num1,Double num2,int scale){ BigDecimal results = null; if(null!=num1&&null!=num2){ BigDecimal b1 = new BigDecimal(num1.toString()).setScale(scale, scale); BigDecimal b2 = new BigDecimal(num2.toString()).setScale(scale, scale); results = b1.subtract(b2).setScale(scale, scale); } return results; } public static BigDecimal multiply(Double num1,Double num2,int scale){ BigDecimal results = null; if(null!=num1&&null!=num2){ BigDecimal b1 = new BigDecimal(num1.toString()).setScale(scale, scale); BigDecimal b2 = new BigDecimal(num2.toString()).setScale(scale, scale); results = b1.add(b2).setScale(scale, scale); } return results; } public static BigDecimal divide(Double num1,Double num2,int scale){ BigDecimal results = null; if(null!=num1&&null!=num2){ BigDecimal b1 = new BigDecimal(num1.toString()).setScale(scale, scale); BigDecimal b2 = new BigDecimal(num2.toString()).setScale(scale, scale); results = b1.add(b2).setScale(scale, scale); } return results; } public static void main(String[] args) { System.out.println(ArithUtils.add(123,123)); System.out.println(ArithUtils.add(123.01,123.01,2)); } /*BigInteger和BigDecimal的其他方法参考JDK helper*/ }
相关文章推荐
- Java的两个高精度计算的类:BigInteger,BigDecimal
- java中biginteger和bigdecimal在大数计算中的使用
- 第八节 大数BigInteger BigDecimal计算
- 【JavaSE】Java高精度计算类:BigInteger和BigDecimal
- Java 表示超大型数据和浮点型计算不准确 BigInteger 和 BigDecimal 类介绍
- 高精度运算类(BigInteger,BigDecimal)
- Find the maximum 欧拉函数 高精度 BigInteger TWT Tokyo Olympic 2COMBO-1
- BigInteger和BigDecimal的简单使用
- Java利用BigInteger计算斐波那契数列(不死神兔)
- BigInteger、BigDecimal、数字格式化
- 处理大数字BigInteger与BigDecimal
- 【正整数模板运算(C++手写BigInteger类和java.math.BigInteger以及java.math.BigDecimal)】
- Java中的大数据:BigInteger和BigDecimal
- java.math中NumberFormat,Math,BigInteger和BigDecimal的简单用法
- java 中的大数据类型(BigInteger和BigDecimal)
- Java中正则表达式和常用的Math、Random、System、BigInteger、BigDecimal、Date/DateFormat、Calendar类的使用
- java 中的大数据类型(BigInteger和BigDecimal)
- BigDecimal与BigInteger的一些常用方法
- Java5:BigInteger、BigDecimal详解
- Java中BigInteger和BigDecimal详解