Java大数模板——加法、减法、乘法、除法、开方、求余
2017-08-30 19:32
1506 查看
1、BigInteger的运算
import java.math.BigInteger;import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// String num1 = "999999999999999999999999999999";
// String num2 = "999999999999999999999999999998";
// BigInteger big1 = new BigInteger(num1);
// BigInteger big2 = new BigInteger(num2);
Scanner sc=new Scanner(System.in);
BigInteger big1=sc.nextBigInteger();
BigInteger big2=sc.nextBigInteger();
System.out.println("加法操作:" + big1.add(big2));
System.out.println("减法操作:" + big1.subtract(big2));
System.out.println("乘法操作:" + big1.multiply(big2));
BigInteger result[] = big1.divideAndRemainder(big2);
System.out.println("相除后的商是:" + result[0]);
System.out.println("相除后的余数是:" + result[1]);
}
}
2、BigDecimal的运算
import java.math.BigDecimal; public class Main { /* * ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->2 ; ROUND_HALF_DOWN: * 遇到.5的情况时往下近似,例:1.5 ->;1 */ public static BigDecimal add(String num1, String num2) {// 加法 BigDecimal big1 = new BigDecimal(num1); BigDecimal big2 = new BigDecimal(num2); return big1.add(big2); } public static BigDecimal sub(String num1, String num2) {// 减法 BigDecimal big1 = new BigDecimal(num1); BigDecimal big2 = new BigDecimal(num2); return big1.subtract(big2); } public static BigDecimal mul(String num1, String num2) {// 乘法 BigDecimal big1 = new BigDecimal(num1); BigDecimal big2 = new BigDecimal(num2); return big1.multiply(big2); } public static BigDecimal round(BigDecimal num, int scale) {// 四舍五入,保留scale位小数 return num.setScale(scale, BigDecimal.ROUND_HALF_DOWN); } public static BigDecimal div(String num1, String num2, int scale) {// 除法,保留scale位小数 BigDecimal bd1 = new BigDecimal(num1); BigDecimal bd2 = new BigDecimal(num2); return bd1.divide(bd2, scale, BigDecimal.ROUND_HALF_UP); } public static int compare(String num1, String num2){//-1小于,0等于,1大于 BigDecimal bd1 = new BigDecimal(num1); BigDecimal bd2 = new BigDecimal(num2); return bd1.compareTo(bd2); } public static BigDecimal sqrt(BigDecimal a) {//开方 BigDecimal l = BigDecimal.ZERO, r = a, mid = a; BigDecimal two = new BigDecimal("2"); BigDecimal eps = new BigDecimal(1e-120); while (l.compareTo(r.subtract(eps)) == -1) { mid = l.add(r).divide(two); if (mid.multiply(mid).compareTo(a) == 1) { r = mid; } else { l = mid; } } return mid; } public static void main(String[] args) { String num1 = "12345.6789"; String num2 = "3333.23443"; String num3 = "123456"; BigDecimal a = new BigDecimal(num3); System.out.println("加法操作:" + round(add(num1, num2), 2)); System.out.println("减法操作:" + round(sub(num1, num2), 2)); System.out.println("乘法操作:" + round(mul(num1, num2), 2)); System.out.println("除法操作:" + div(num1, num2, 2)); System.out.println("开方操作:" + sqrt(a)); System.out.println("比较操作:" + compare(num1, num2)); } }
相关文章推荐
- 整数大数模拟 高精度加法 高精度减法 高精度乘法 高精度除法 c/c++ java
- 大数模板 大数加法,大数减法,大数乘法,大数除法,大数比较等操作
- 高精度 大数加法 乘法 除法 幂 模板
- 大数加法、减法、乘法、除法实现
- 大数加法、减法、乘法、除法、求余、比较、乘方(代码简短(总计150)、易懂)
- Java工作利器之常用工具类(二)——数字工具类-大数乘法、加法、减法运算
- 高精度 大数加法 乘法 除法 模板
- Java常用数字工具类 大数乘法、加法、减法运算(2)
- 大数加法 减法 乘法 除法 高精度四则运算
- 大数加法.减法.乘法.除法
- 大数加法 减法 乘法 除法 高精度四则运算
- java实现大整形加法、减法(还没有乘法和除法,目测除法会很难,乘法还凑合)
- 剑指offer编程题Java实现——面试题12相关题大数的加法、减法、乘法问题的实现
- Java之计算机简单的加减乘除运算以及连续的加法,减法,乘法,除法运算
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 大数的四则运算(加法、减法、乘法、除法)
- 大数运算之加法乘法---JAVA实现
- Java模拟两个大整数的加法、乘法、除法
- 【Java】只允许使用加号,实现整数的减法,乘法,除法
- 只使用++运算实现加法,减法,乘法,除法PHP实现