• Java数字相关类


    Java数字类
    1.整数 Short,Int,Long
    2.浮点数 Float,Double
    3.大数类 BigInteger(大整数),BigDecimal(大浮点数)
    4.随机数类 Random
    5.工具类 Math

    BigInteger类的一些操作用法如下:

    BigInteger:支持无限大的整数运算

    package cn.edu.xjdx.zzk;
    
    import java.math.BigInteger;
    
    public class BigIntegerTest {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
            BigInteger b1=new BigInteger("123456789");//声明BigInteger对象
            BigInteger b2=new BigInteger("987654321");
            System.out.println("b1:"+b1 + ", b2:"+b2);
            System.out.println("加法操作: "+b2.add(b1));
            System.out.println("减法操作:"+b2.subtract(b1));//执行b2-b1操作
            System.out.println("乘法操作:"+b2.multiply(b1));
            System.out.println("除法操作:"+b2.divide(b1));//执行b2/b1操作
            System.out.println("最大数:"+b2.max(b1));
            System.out.println("最小数:"+b2.min(b1));
            BigInteger result[]=b2.divideAndRemainder(b1);//求出余数的除法操作
            System.out.println("商是"+ result[0] +"  余数是"+result[1]);
            System.out.println("等价性是:"+ b1.equals(b1));
            int flag=b1.compareTo(b2);
            if(flag==-1)
            	System.out.println("比较操作:b1<b2");
            else if(flag==0)
            	System.out.println("比较操作:b1==b2");
            else
            	System.out.println("比较操作:b1>b2");
    	}
    
    }
    
    

    操作结果如下图:

    关于Java中的Integer的==和equals的区分和使用,可以参考这篇博文:https://www.cnblogs.com/mrhgw/p/10449391.html

    BigDecimal类的一些操作用法如下:

    BigDecimal:支持无限大的浮点数运算
    BigDecimal中divide方法详解:
    首先说一下用法,BigDecimal中的divide主要就是用来做除法的运算。其中有这么一个方法.

    public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode)
    

    第一个参数是除数,第二个参数代表保留几位小数,第三个代表的是使用的模式。

    BigDecimal.ROUND_DOWN:直接省略多余的小数,比如1.28如果保留1位小数,得到的就是1.2
    
    BigDecimal.ROUND_UP:直接进位,比如1.21如果保留1位小数,得到的就是1.3
    
    BigDecimal.ROUND_HALF_UP:四舍五入,2.35保留1位,变成2.4
    
    BigDecimal.ROUND_HALF_DOWN:四舍五入,2.35保留1位,变成2.3
    
    后边两种的区别就是如果保留的位数的后一位如果正好是5的时候,一个舍弃掉,一个进位。
    
    

    示例代码如下:

    package cn.edu.xjdx.zzk;
    
    import java.math.BigDecimal;
    
    public class BigDecimalTest {
    
    	@SuppressWarnings("deprecation")
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
            BigDecimal b1=new BigDecimal("123456789.987654321");
            BigDecimal b2=new BigDecimal("987654321.123456789");
            System.out.println("b1: "+b1+"  b2: "+b2);
            System.out.println("加法操作: "+b2.add(b1));
            System.out.println("减法操作:"+b2.subtract(b1));//执行b2-b1操作
            System.out.println("乘法操作:"+b2.multiply(b1));
            //需要指定位数,防止无限循环,或者包含在try-catch中
            System.out.println("除法操作:"+b2.divide(b1, 10, BigDecimal.ROUND_HALF_UP));//执行b2/b1操作
            System.out.println("最大数:"+b2.max(b1));
            System.out.println("最小数:"+b2.min(b1));
            int flag=b1.compareTo(b2);
            if(flag==-1)
            	System.out.println("比较操作:b1<b2");
            else if(flag==0)
            	System.out.println("比较操作:b1==b2");
            else
            	System.out.println("比较操作:b1>b2");
            System.out.println("=====================================");
            //尽量采用字符串赋值
            System.out.println(new BigDecimal("2.3"));
            System.out.println(new BigDecimal(2.3));
            System.out.println("=====================================");
            BigDecimal num1=new BigDecimal("10");
            BigDecimal num2=new BigDecimal("3");
            //需要指定位数,防止无限循环,或者包含在try-catch中
            BigDecimal num3=num1.divide(num2, 3, BigDecimal.ROUND_HALF_UP);
            System.out.println(num3);
    	}
        
    }
    
    

    运行结果如下图:

    随机数类

    • Random随机数
      -nextInt()返回一个随机int
      -nextInt(int a)返回一个[0,a)之间的随机int
      -nextDouble返回一个[0.0,1.0)之间的double,含 0.0 而不包含 1.0
      -ints方法批量返回谁技术数组

    • Math.random返回一个0.0到1.0的double,即[0.0,1.0),含 0.0 而不包含 1.0

    数字工具类

    • Java,lang,Math
    • 绝对值函数abs
    • 对数函数log
    • 比较函数max,min
    • 幂函数pow
    • 四舍五入函数round等
    • 向下取整floor
    • 向上取整ceil
      示例代码如下:
    package cn.edu.xjdx.zzk;
    
    public class MathTest {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
            System.out.println(Math.abs(-5));//绝对值
            System.out.println(Math.max(-5, -8));//最大值
            System.out.println(Math.pow(-5, 2));//求幂
            System.out.println(Math.round(3.5));//四舍五入
            System.out.println(Math.ceil(3.5));//向上取整
            System.out.println(Math.floor(3.5));//向下取整
    	}
    
    }
    

    运行结果如下:

  • 相关阅读:
    7.18学习日志
    7.16学习日志
    5 Things They Never Tell You About Making iPhone Apps
    MantisBT
    25款实用的桌面版博客编辑器
    【转】如何学会600多种编程语言
    开发者如何提升和推销自己
    CleanMyMac 1.10.8
    VMWARE FUSION 6 KEY
    cocos2dx shader
  • 原文地址:https://www.cnblogs.com/Acapplella/p/13377147.html
Copyright © 2020-2023  润新知