BigInteger和BigDecimal的练习
2024-08-26 16:11:51
前言:
BigInteger用于处理大数据的计算,它继承自java.math.BigInteger。用法相对来说比较简单,掌握几个基本运算即可。
- 初始化: BigInteger sum=new BigInteger("0");
- 加法:sum=sum.add(n1); //这里sum和n都为BigInteger类型
- 减法:sum=sum.subtract(n1);
- 乘法:sum=sum.multiply(n1);
- 除法:sum=sum.divide(n1);
- 幂运算:sum=sum.pow(10);
- 取相反数:sum=sum.negate();
同理,BigDecimal是处理浮点数的大数据运算,继承自java.math.BigDecimal。
- 初始化: BigDecimal num1=new BigDecimal("1234.56453324");
- 加法:sum=sum.add(n1); //这里sum和n都为BigDecimal类型
- 减法:sum=sum.subtract(n1);
- 乘法:sum=sum.multiply(n1);
- 除法:sum=sum.divide(n1);
- 将BigDecimal类型转换为double类型:num1.doubleValue();
- 比较大小:num1.compareTo(num2); //小于 时,返回 -1 ; 等于 时,返回 0 ; 大于 时,返回 1 。
- 四舍五入处理: num1.divide(num2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); //scale表示保留几位小数
练习1:
BigInteger的加法运算:输入以0结尾
输入例子:
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
0
输出例子:
370370367037037036703703703670 代码如下:
import java.math.BigInteger;
import java.util.Scanner; public class Integer_Inquiry { public static void main(String[] args) {
Scanner in = new Scanner(System.in);
BigInteger sum=new BigInteger("0");
while(in.hasNext()){
String str=in.next();
if(str.equals("0")){
System.out.println(sum);
sum=new BigInteger("0");
}
BigInteger n=new BigInteger(str);
sum=sum.add(n);
}
in.close(); } }
练习2:BigDecimal加法练习:
输入描述:
对于每组案例,第1行是测试数据的组数n,每组测试数据占2行,分别是两个加数。
每组测试数据之间有一个空行,每行数据不超过100个字符
输出描述:
每组案例是n行,每组测试数据有一行输出是相应的和。
输出保证一定是一个小数部分不为0的浮点数
输入例子:
2
0.111111111111111111111111111111
0.111111111111111111111111111111 10000000.655555555555555555555555555555
1.444444444444444444444444444445
输出例子:
0.222222222222222222222222222222
10000002.1
import java.math.BigDecimal;
import java.util.Scanner; public class 浮点数加法 { public static void main(String[] args) {
Scanner in= new Scanner(System.in);
int n = in.nextInt(); while(n>0){
BigDecimal num1=new BigDecimal(in.next());
BigDecimal num2=new BigDecimal(in.next());
System.out.println(num1.add(num2).doubleValue());
n--;
// if(n>0){
// if(!in.next().equals("")){
// System.out.println("输入格式错误");
// break;
// }
// }
}
in.close(); } }
最新文章
- 抽象工厂模式(Abstract Factory Pattern)
- Delphi日期函数、日期加减
- Oracle数据库,模糊查询、去重查询
- Unitils集成DBUnit的问题-解决方案
- table相关的API
- Aix_bugzilla
- HDU 1134 卡特兰数 大数乘法除法
- checkbox 选择功能和反选
- Vue 自定义图片懒加载指令v-lazyload
- Python爬虫初学(二)—— 爬百度贴吧
- JQ判断浏览器以及版本
- 火狐浏览器打开html文件,中文乱码
- 用MVC导入导出
- linux服务器 jboss-7安装
- Request method 'POST' not supported解决办法
- Netty 5 io.netty.util.IllegalReferenceCountException 异常
- SSIS Hekaton In-Memory OLTP 【翻译一篇外国文章】
- java-多线程(上)
- golang打造基于mail的提醒服务
- Pulsar-Producer实现简介