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,如需转载请自行联系原作者

相关文章
|
5天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
18 0
|
27天前
|
SQL Java 数据库连接
java使用jdbc操作数据库
java使用jdbc操作数据库
|
2月前
|
存储 Java 数据处理
|
12天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)
【4月更文挑战第21天】本文介绍了Selenium中处理特殊测试场景的方法,如鼠标悬停。Selenium的Actions类提供了鼠标悬停功能,用于模拟用户在网页元素上的悬停行为。文中通过实例展示了如何使用Actions悬停并展开下拉菜单,以及在搜索时选择自动补全的字段。代码示例包括了打开百度首页,悬停在“更多”元素上显示下拉菜单并点击“音乐”,以及在搜索框输入关键词并自动补全的过程。
35 0
|
5天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(<https://www.sojump.com/m/2792226.aspx/>)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
14 0
|
3天前
|
XML 前端开发 Oracle
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
9 2
|
5天前
|
存储 NoSQL 安全
java 中通过 Lettuce 来操作 Redis
java 中通过 Lettuce 来操作 Redis
java 中通过 Lettuce 来操作 Redis
|
6天前
|
分布式计算 DataWorks 监控
DataWorks操作报错合集之DataWorks在调用java sdk的createFile功能时报错com.aliyuncs.exceptions.ClientException: 1201111000 如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
10 1
|
6天前
|
存储 前端开发 测试技术
《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
【4月更文挑战第27天】本文介绍了使用Java+Selenium进行Web自动化测试时,如何遍历和操作多选按钮的方法。文章分为两个部分,首先是一个本地HTML页面的示例,展示了多选按钮的HTML代码和页面效果,并详细解释了遍历多选按钮的思路:找到所有多选按钮的共同点,通过定位这些元素并放入list容器中,然后使用for循环遍历并操作。 第二部分介绍了在JQueryUI网站上的实战,给出了被测网址,展示了代码设计,同样使用了findElements()方法获取所有多选按钮并存储到list中,然后遍历并进行点击操作。最后,文章对整个过程进行了小结,并推荐了作者的其他自动化测试教程资源。
15 0
|
8天前
|
前端开发 测试技术 Python
《手把手教你》系列技巧篇(三十三)-java+ selenium自动化测试-单选和多选按钮操作-上篇(详解教程)
【4月更文挑战第25天】本文介绍了自动化测试中如何处理单选和多选按钮的操作,包括它们的定义、HTML代码示例以及如何判断和操作这些元素。文章通过一个简单的HTML页面展示了单选和多选框的示例,并提供了Java+Selenium实现的代码示例,演示了如何检查单选框是否选中以及如何进行全选操作。
15 0