码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础之BigInteger,BigDecimal

时间:2015-04-10 09:38:01      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:biginteger   bigdecimal   

JAVA的两个类BigIntegerBigDecimal分别表示大整数类和大浮点数类,理论上能够表示无限大的数。

1:大整数:BigInteger


  1. import java.util.*;  
  2. import java.math.*;  
  3.   
  4. public class Test {  
  5.     public static void main(String[] args) {  
  6.         Scanner cin = new Scanner(System.in);  
  7.           
  8.         //BigInteger类型的常量  
  9.         BigInteger A = BigInteger.ONE;  
  10.         System.out.println("BigInteger.ONE的结果为 " + A);//1  
  11.         BigInteger B = BigInteger.TEN;  
  12.         System.out.println("BigInteger.TEN的结果为 " + B);//10  
  13.         BigInteger C = BigInteger.ZERO;  
  14.         System.out.println("BigInteger.ZERO的结果为 " + C);//0  
  15.           
  16.         //初始化  
  17.         BigInteger c = new BigInteger("12345670",8);//c = 01234567890 ,八进制    
  18.         System.out.println(c);//2739128  
  19.         BigInteger d = BigInteger.valueOf(100);//d = 100  
  20.         BigInteger e = new BigInteger(new byte[]{1,0});//00000001 00000000  
  21.         System.out.println(e);//256  
  22.         System.out.println(e.bitCount());  
  23.         System.out.println(e.bitLength());  
  24.           
  25.         //运算  
  26.         System.out.println("请输入大整数a,b");          
  27.         while (cin.hasNext()) {//等同于!=EOF     
  28.             BigInteger a = cin.nextBigInteger();  
  29.             BigInteger b = cin.nextBigInteger();  
  30.             BigInteger c1 = a.add(b); // 大数加法  
  31.             System.out.println("加的结果为 " + c1);  
  32.             BigInteger c2 = a.subtract(b); // 大数减法  
  33.             System.out.println("减的结果为 " + c2);  
  34.             BigInteger c3 = a.multiply(b); // 大数乘法  
  35.             System.out.println("乘的结果为 " + c3);  
  36.             BigInteger c4 = a.divide(b); // 大数除法  
  37.             System.out.println("除的结果为 " + c4);  
  38.             BigInteger c5 = a.mod(b);  
  39.             System.out.println("模的结果为 " + c5);  
  40.             BigInteger cc5 = a.remainder(b);  
  41.             System.out.println("余的结果为 " + cc5);  
  42.             BigInteger c6 = a.max(b);// 取最大  
  43.             System.out.println("最大为 " + c6);  
  44.             BigInteger c7 = a.min(b); // 取最小  
  45.             System.out.println("最小为 " + c7);  
  46.             BigInteger c8 = a.pow(10); //指数运算  
  47.             System.out.println("指数运算结果为" + c8);  
  48.             if (a.equals(b)) // 判断是否相等  
  49.                 System.out.println("相等");  
  50.             else  
  51.                 System.out.println("不相等");  
  52.             BigInteger c10 = a.abs(); // 求绝对值  
  53.             System.out.println("a的绝对值为 " + c10);  
  54.             BigInteger c11 = a.negate(); // 求相反数  
  55.             System.out.println("a的相反数为 " + c11);  
  56.         }  
  57.     }  
  58. }


  59.   

2:大浮点数:

  • import java.util.*;  
  • import java.math.*;  
  •   
  • public class Test {  
  •     public static void main(String[] args) {  
  •         Scanner cin = new Scanner(System.in);  
  •           
  •         //BigDecimal类型的常量  
  •         BigDecimal A = BigDecimal.ONE;  
  •         System.out.println("BigDecimal.ONE的结果为 " + A);//1  
  •         BigDecimal B = BigDecimal.TEN;  
  •         System.out.println("BigDecimal.TEN的结果为 " + B);//10  
  •         BigDecimal C = BigDecimal.ZERO;  
  •         System.out.println("BigDecimal.ZERO的结果为 " + C);//0  
  •           
  •         //初始化  
  •         BigDecimal c = new BigDecimal("89.1234567890123456789");  
  •         BigDecimal d = new BigDecimal(100);  
  •         BigDecimal e = new BigDecimal(new char[]{‘2‘,‘1‘,‘.‘,‘2‘});       
  •         System.out.println(e);//21.2  
  •           
  •         //运算  
  •         System.out.println("请输入大整数a,b");          
  •         while (cin.hasNext()) {//等同于!=EOF     
  •             BigDecimal a = cin.nextBigDecimal();  
  •             BigDecimal b = cin.nextBigDecimal();  
  •             BigDecimal c1 = a.add(b); // 大数加法  
  •             System.out.println("加的结果为 " + c1);  
  •             BigDecimal c2 = a.subtract(b); // 大数减法  
  •             System.out.println("减的结果为 " + c2);  
  •             BigDecimal c3 = a.multiply(b); // 大数乘法  
  •             System.out.println("乘的结果为 " + c3);  
  •               
  •             //注意,这里如果不能除尽,就会抛出一个ArithmeticException错误  
  •             BigDecimal c4 = a.divide(b); // 大数除法  
  •             System.out.println("除的结果为 " + c4);  
  •               
  •             BigDecimal cc5 = a.remainder(b);  
  •             System.out.println("余的结果为 " + cc5);  
  •             BigDecimal c6 = a.max(b);// 取最大  
  •             System.out.println("最大为 " + c6);  
  •             BigDecimal c7 = a.min(b); // 取最小  
  •             System.out.println("最小为 " + c7);  
  •             BigDecimal c8 = a.pow(10); //指数运算  
  •             System.out.println("指数运算结果为" + c8);  
  •             if (a.equals(b)) // 判断是否相等  
  •                 System.out.println("相等");  
  •             else  
  •                 System.out.println("不相等");  
  •             BigDecimal c10 = a.abs(); // 求绝对值  
  •             System.out.println("a的绝对值为 " + c10);  
  •             BigDecimal c11 = a.negate(); // 求相反数  
  •             System.out.println("a的相反数为 " + c11);  
  •         }  
  •     }  
  • }  


  • 3:常用格式转换:

    1. //去后缀0  
    2.   BigDecimal bd = new BigDecimal("12000.87300");  
    3.   bd = bd.stripTrailingZeros();  
    4.   System.out.println(bd);  
    5.   bd = new BigDecimal("1.2E-3");  
    6. //  bd = new BigDecimal("1.2E+3");  
    7.   //去科学记数  
    8.   if(bd.scale()<0){  
    9.    bd = bd.setScale(0);  
    10.   }  
    11.   System.out.println(bd);  
    12.   //保留N位小数.  N=5:  
    13.   bd = new BigDecimal("12000.873000");  
    14.   bd = bd.setScale(5, BigDecimal.ROUND_HALF_UP);  
    15.   System.out.println(bd);  

    Java基础之BigInteger,BigDecimal

    标签:biginteger   bigdecimal   

    原文地址:http://blog.csdn.net/u010552723/article/details/44968085

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!