大数操作(BigIntger、BigDecimal)
来源:互联网 发布:药理学 知乎 编辑:程序博客网 时间:2024/06/18 17:56
1.Biglnteger
如果在操作的时候一个整形数据已经超过了整数的最大类型长度long 的话,则此数据就无法装入,所以,此时要使用Biglnteger 类进行操作。
BigInteger 是在java.math 包中。
import java.math.BigInteger ;public class BigIntegerDemo01{public static void main(String args[]){BigInteger bi1 = new BigInteger("123456789") ;// 声明BigInteger对象BigInteger bi2 = new BigInteger("987654321") ;// 声明BigInteger对象System.out.println("加法操作:" + bi2.add(bi1)) ;// 加法操作System.out.println("减法操作:" + bi2.subtract(bi1)) ;// 减法操作System.out.println("乘法操作:" + bi2.multiply(bi1)) ;// 乘法操作System.out.println("除法操作:" + bi2.divide(bi1)) ;// 除法操作System.out.println("最大数:" + bi2.max(bi1)) ; // 求出最大数System.out.println("最小数:" + bi2.min(bi1)) ; // 求出最小数BigInteger result[] = bi2.divideAndRemainder(bi1) ;// 求出余数的除法操作System.out.println("商是:" + result[0] + ";余数是:" + result[1]) ;}};
2.BigDecimal
对于不需要任何准确计算精度的程序可以直接使用float 或double 完成,但是如果需要精确计算的结果,则必须使用BigDecimal 类。
import java.math.* ;class MyMath{public static double add(double d1,double d2){// 进行加法计算BigDecimal b1 = new BigDecimal(d1) ;BigDecimal b2 = new BigDecimal(d2) ;return b1.add(b2).doubleValue() ;}public static double sub(double d1,double d2){// 进行减法计算BigDecimal b1 = new BigDecimal(d1) ;BigDecimal b2 = new BigDecimal(d2) ;return b1.subtract(b2).doubleValue() ;}public static double mul(double d1,double d2){// 进行乘法计算BigDecimal b1 = new BigDecimal(d1) ;BigDecimal b2 = new BigDecimal(d2) ;return b1.multiply(b2).doubleValue() ;}public static double div(double d1,double d2,int len){// 进行乘法计算BigDecimal b1 = new BigDecimal(d1) ;BigDecimal b2 = new BigDecimal(d2) ;return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue() ;}public static double round(double d,int len){// 进行四舍五入BigDecimal b1 = new BigDecimal(d) ;BigDecimal b2 = new BigDecimal(1) ;return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue() ;}};public class BigDecimalDemo01{public static void main(String args[]){System.out.println("加法运算:" + MyMath.round(MyMath.add(10.345,3.333),1)) ;System.out.println("减法运算:" + MyMath.round(MyMath.sub(10.345,3.333),3)) ;System.out.println("乘法运算:" + MyMath.round(MyMath.mul(10.345,3.333),2)) ;System.out.println("除法运算:" + MyMath.div(10.345,3.333,3)) ;}};
- 大数操作(BigIntger、BigDecimal)
- 【Java常用类库】_大数操作(BigIntger、BigDecimal)
- 【Java常用类库】_大数操作(BigIntger、BigDecimal)
- 【Java常用类库】_大数操作(BigIntger、BigDecimal)
- Java常用类库——数字格式化(NumberFormat)与大数操作(BigIntger、BigDecimal类)
- Java高新技术——大数操作(BigInteger、BigDecimal)
- java常用类库---大数操作(BigInteger,BigDecimal)
- 大数操作(BigInteger类、BigDecimal类)
- Java大数-BigInteger BigDecimal
- Java大数BigInteger BigDecimal
- BigDecimal操作
- java 大数类 总结 整数小数(BigInteger和BigDecimal)
- java常用类库续2(大数操作BigInteger、BigDecimal类、对象克隆技术、Arrays类)
- JAVA大数处理(BigInteger,BigDecimal)
- JAVA大数处理(BigInteger,BigDecimal)
- JAVA大数处理(BigInteger,BigDecimal)
- JAVA大数处理(BigInteger,BigDecimal)
- [转载] Java BigDecimal大数类
- action english16
- 据说看完这21个故事的人,30岁前都成了亿万富翁
- 快速回到顶部的JavaScript代码
- action english17
- GAE 博客——B3log Solo 0.3.0 正式版发布了!
- 大数操作(BigIntger、BigDecimal)
- 各种排序算法时间复杂度比较
- opengl纹理映射的学习总结
- PKU3630---tire
- hdu 1983 Kaitou Kid - The Phantom Thief (2) (DFS+BFS)
- POJ 1661 Help Jimmy 【DP ?】
- FusionCharts通过属性link向JavaScript函数传递中文参数导致乱码的解决方法
- 正则表达式
- C++Primer笔记(三)