Java大数的操作

简介:

1、BigInteger:针对大的整数, 是以字符串方式进行传人的

 
  1. import java.math.BigInteger ; 
  2. public class BigIntegerDemo01{ 
  3.     public static void main(String args[]){ 
  4.         BigInteger bi1 = new BigInteger("123456789") ;  // 声明BigInteger对象 
  5.         BigInteger bi2 = new BigInteger("987654321") ;  // 声明BigInteger对象 
  6.         System.out.println("加法操作:" + bi2.add(bi1)) ;    // 加法操作 
  7.         System.out.println("减法操作:" + bi2.subtract(bi1)) ;   // 减法操作 
  8.         System.out.println("乘法操作:" + bi2.multiply(bi1)) ;   // 乘法操作 
  9.         System.out.println("除法操作:" + bi2.divide(bi1)) ; // 除法操作 
  10.         System.out.println("最大数:" + bi2.max(bi1)) ;  // 求出最大数 
  11.         System.out.println("最小数:" + bi2.min(bi1)) ;  // 求出最小数 
  12.         BigInteger result[] = bi2.divideAndRemainder(bi1) ; // 求出余数的除法操作 
  13.         System.out.println("商是:" + result[0] +  
  14.             ";余数是:" + result[1]) ; 
  15.     } 
  16. }; 

执行结果:

 
  1. 加法操作:1111111110 
  2. 减法操作:864197532 
  3. 乘法操作:121932631112635269 
  4. 除法操作:8 
  5. 最大数:987654321 
  6. 最小数:123456789 
  7. 商是:8;余数是:9 

2、BigDecimal:针对大的浮点数, 是以字符串的方式传入的

 
  1. import java.math.* ; 
  2. class MyMath{ 
  3.     public static double add(double d1,double d2){      // 进行加法计算 
  4.         BigDecimal b1 = new BigDecimal(d1) ; 
  5.         BigDecimal b2 = new BigDecimal(d2) ; 
  6.         return b1.add(b2).doubleValue() ; 
  7.     } 
  8.     public static double sub(double d1,double d2){      // 进行减法计算 
  9.         BigDecimal b1 = new BigDecimal(d1) ; 
  10.         BigDecimal b2 = new BigDecimal(d2) ; 
  11.         return b1.subtract(b2).doubleValue() ; 
  12.     } 
  13.     public static double mul(double d1,double d2){      // 进行乘法计算 
  14.         BigDecimal b1 = new BigDecimal(d1) ; 
  15.         BigDecimal b2 = new BigDecimal(d2) ; 
  16.         return b1.multiply(b2).doubleValue() ; 
  17.     } 
  18.     public static double div(double d1,double d2,int len){      // 进行乘法计算 
  19.         BigDecimal b1 = new BigDecimal(d1) ; 
  20.         BigDecimal b2 = new BigDecimal(d2) ; 
  21.         return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue() ; 
  22.     } 
  23.     public static double round(double d,int len){   // 进行四舍五入 
  24.         BigDecimal b1 = new BigDecimal(d) ; 
  25.         BigDecimal b2 = new BigDecimal(1) ; 
  26.         return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue() ; 
  27.     } 
  28. }; 
  29.  
  30. public class BigDecimalDemo01{ 
  31.     public static void main(String args[]){ 
  32.         System.out.println("加法运算:" + MyMath.round(MyMath.add(10.345,3.333),1)) ; 
  33.         System.out.println("减法运算:" + MyMath.round(MyMath.sub(10.345,3.333),3)) ; 
  34.         System.out.println("乘法运算:" + MyMath.round(MyMath.mul(10.345,3.333),2)) ; 
  35.         System.out.println("除法运算:" + MyMath.div(10.345,3.333,3)) ; 
  36.     } 
  37. }; 

执行结果:

 
  1. 加法运算:13.7 
  2. 减法运算:7.012 
  3. 乘法运算:34.48 
  4. 除法运算:3.104 

总结:针对大数以字符串的方式传人,再利用提供的加减乘除方法来操作数据,而不是以'+ - * /'来操作数据

 


本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/412105,如需转载请自行联系原作者

相关文章
|
6月前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作
|
7月前
|
存储 Java
java用modbus4j的RTU去操作那些寄存器(线圈,保持,输入,离散输入寄存器)
java用modbus4j的RTU去操作那些寄存器(线圈,保持,输入,离散输入寄存器)
292 0
|
7月前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
99 0
|
6月前
|
存储 Java 索引
Java ArrayList操作指南:如何移除并返回第一个元素
通过上述方法,你可以方便地从Java的 `ArrayList` 中移除并返回第一个元素。这种操作在日常编程中非常常见,是处理列表时的基本技能之一。希望这篇指南能帮助你更好地理解和运用Java的 `ArrayList`。
73 4
|
6月前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之使用ODPS Tunnel Upload功能时,遇到报错:Java 堆内存不足,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
|
6月前
|
Java API 开发者
Java中的文件I/O操作详解
Java中的文件I/O操作详解
|
6月前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作
|
7月前
|
Java
使用kafka-clients操作数据(java)
使用kafka-clients操作数据(java)
153 6
|
7月前
|
安全 Java 程序员
在Java中,finalization是一种机制,允许对象在被垃圾收集器回收之前执行一些清理操作。
【6月更文挑战第24天】Java中的finalization机制允许对象在被垃圾收集前执行清理,以释放系统资源或处理敏感信息。`finalize()`方法用于定义此类操作,但它不是可靠的资源管理策略,因为调用时机不确定且可能影响性能。尽管可用于清理外部资源或作为保护措施,但应避免依赖finalization,而应优先采用手动资源管理,遵循“创建者负责”原则。
40 1