【Java常用类库】_大数操作(BigIntger、BigDecimal)
来源:互联网 发布:希尔伯特 知乎 编辑:程序博客网 时间:2024/05/22 17:46
Ref: http://blog.csdn.net/e421083458/article/details/8551859
本章目标:
可以使用 BigInteger操作大整数
大数据操作。正常情况下一个整数只能放在long类型之中,但是如果现在有如下的一个数字:
111111111111111111111111111111111111111111111111111111111111111111111111111111111
根本就无法保存的,所以为了解决这样的问题,在java中引入了两个大数的操作类:
操作整数:BigInteger
操作小数:BigDecimal
3.1、BigInteger
如果在操作的时候一个整形数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作。
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]) ; } };
3.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)) ; } };
1 0
- 【Java常用类库】_大数操作(BigIntger、BigDecimal)
- 【Java常用类库】_大数操作(BigIntger、BigDecimal)
- 【Java常用类库】_大数操作(BigIntger、BigDecimal)
- Java常用类库——数字格式化(NumberFormat)与大数操作(BigIntger、BigDecimal类)
- 大数操作(BigIntger、BigDecimal)
- java常用类库---大数操作(BigInteger,BigDecimal)
- Java 大数BigDecimal常用处理
- java常用类库续2(大数操作BigInteger、BigDecimal类、对象克隆技术、Arrays类)
- Java高新技术——大数操作(BigInteger、BigDecimal)
- [转载] Java BigDecimal大数类
- 大数操作(BigInteger类、BigDecimal类)
- java 大数类 总结 整数小数(BigInteger和BigDecimal)
- Java 大数类 BigInteger和 BigDecimal
- JAVA大数类 BigInteger和BigDecimal用法
- Java大数-BigInteger BigDecimal
- Java大数BigInteger BigDecimal
- 45、java常用类-BigDecimal
- JAVA大数处理(BigInteger,BigDecimal)
- Javascript 行为委托
- librtmp发送阻塞
- iOS View Controller 全屏布局
- JavaEE平台下CRM系统开发
- 虚幻4属性系统(反射)翻译
- 【Java常用类库】_大数操作(BigIntger、BigDecimal)
- 洛谷 P2038 无线网络发射器选址
- 欢迎使用CSDN-markdown编辑器
- 计算机视觉
- 依赖包后出现Failed to resolve: com.github.Aspsine:SwipeToLoadLayout:1.0.3错误
- swift中UITableView的使用(编辑模式)
- 使用python实现的DI原型
- spark性能调优二--JVM调优
- Timer and TimerTask