BigInteger和BigDecimal的练习
前言:
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(); } }
心有猛虎,细嗅蔷薇 转载请注明:https://www.cnblogs.com/ygh1229/