java中大数的一些基本运算

import java.math.BigInteger;
import java.util.Scanner;


public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		BigInteger a,b;
		while(in.hasNext())
		{
			a = in.nextBigInteger();
			b = in.nextBigInteger();
			//四则运算
			System.out.println(a.add(b));
			System.out.println(a.subtract(b));
			System.out.println(a.multiply(b));
			System.out.println(a.divide(b));
			System.out.println(a.remainder(b));
			//大数比较
			if(a.compareTo(b)==0)
				System.out.println("a==b");
			else if(a.compareTo(b)>0) 
				System.out.println("a>b");
			else {
				System.out.println("a<b");
			}
			//绝对值
			System.out.println(a.abs());
			//幂
			int fun = 10;
			System.out.println(a.pow(fun));
			//大数x进制的字符串表示
			int x = 8;
			System.out.println(a.toString(x));
			//大数返回十进制的字符串表示
			System.out.println(a.toString());
		}
	}
}

toPlainString() //转为普遍计数法输出

//给一个字符串1.238761976E-10
//如何得到0.0000000001238761976这个字符串呢?
BigDecimal bd = new BigDecimal("1.238761976E-10");  
System.out.println(bd.toPlainString());

stripTrailingZeros() //去掉末尾0

//给一个字符串1245600.000
//如何得到1245600这个字符串?
BigDecimal bd=new BigDecimal("1245600.000");
System.out.println(bd.stripTrailingZeros());

hdu1063

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
    
        Scanner in = new Scanner(System.in);
        while(in.hasNext())
        {
            BigDecimal ans = BigDecimal.valueOf(1);
            BigDecimal a = in.nextBigDecimal();
            Integer n = in.nextInt();
            while(n-->0)
                ans = ans.multiply(a);
                String str = ans.stripTrailingZeros().toPlainString().toString();
                if(str.charAt(0)=='0')
                    str = str.substring(1);
                System.out.println(str);    
        }
        in.close();
    }
}

hdu 1753

import java.math.BigDecimal;
import java.util.Scanner;

public class test1 {
	public static void main(String[] args) {
	
		Scanner in = new Scanner(System.in);
		while(in.hasNext())
		{
			BigDecimal a = in.nextBigDecimal();
			BigDecimal b = in.nextBigDecimal();
				a=a.add(b);
				String str = a.stripTrailingZeros().toPlainString().toString();
				if(str.charAt(0)=='0')
					str = str.substring(1);
				System.out.println(str);	
		}
		in.close();
	}
}
原文地址:https://www.cnblogs.com/qie-wei/p/10160143.html