Day13-1.Math类型 、System类型 、BigInteger类型 、BigDecimal类型

1 Math类型

  1. 概述:Math类型是一个包含执行基本数字运算的方法的类型
  2. 特点:
    (1)该类是一个工具类,类中全是静态方法
    (2)该类在java.lang包,使用时不需要导包
  3. 静态字段:常量
    E 自然对数的底数
    PI 圆周率
  4. 常用方法:
方法名作用
abs(参数)返回参数的绝对值
ceil(double a)向上取整
floor(double a)向下取整
max(float a, float b)求出两个数的最大值
min(a,b)求出两个数组的最小值
pow(double a, double b)求出参数a的b次方
round(float a)求出a的四舍五入的结果
random()获取一个随机数 0.0—1.0之间

代码

package demos2_Math;

public class Demo01 {
    public static void main(String[] args) {
        //返回自然对象的基数
        System.out.println(Math.E);
        //返回圆周率
        System.out.println(Math.PI);
        //绝对值
        System.out.println(Math.abs(-100));
        System.out.println(Math.abs(-10.34));
        //向上取整
        System.out.println(Math.ceil(10.01));
        //向下取整
        System.out.println(Math.floor(10.99));
        //3的4次方
        System.out.println((int)Math.pow(3,4));
        //四舍五入取整
        System.out.println(Math.round(10.99));
        System.out.println(Math.round(10.44));
        //获取一个随机小数:范围0.0————1.0之间
        System.out.println(Math.random());
    }
}

2 System类型

  1. 概述:System是和系统资源交互使用的一个类型
    类型中定义了几个有用的字段和方法
  2. 常用的字段:
    in :标准输入流,可以从键盘上读取数据
    一般和Scanner类结合使用,可以录入各种数据类型
    out:标准输出流,可以将数据输出到控制台打印
    一般和println方法结合使用,可以打印各种类型的数据
    err:标准错误输出流,默认关联到控制台
    以红色字体打印,一般是系统默认调用
  3. 方法:
    (1)gc()
    强制运行垃圾回收器,强制回收堆内存中的对象垃圾
    (2)currentTimeMillis() :
    返回从1970年0时0分0秒到当前时间的毫秒值

代码

package demos3_System;

public class Demo02 {
    public static void main(String[] args) {
        //返回1970年1月1日0时0分0秒-------当前时刻的毫秒值
        //计算机元年到当前时刻的毫秒值
        long time = System.currentTimeMillis();
        System.out.println(time/1000/60/60/24/365);

        new Demo();
        //强制运行垃圾回收器回收堆内存中的对象
        System.gc();
    }
}

class Demo{
    //重写父类中的方法
    //特点:如果该类的对象被回收,会自动调用该方法
    @Override
    protected void finalize() throws Throwable {
        System.out.println("该类的对象被回收了");
    }
}

3 Scanner类型

  1. 概述:可以录入各种数据类型的数据
  2. 方法:
    nextInt()
    nextDouble()
  3. 特点:
    (1)如果需要录入基本数据类型,录入结束的标志:
    既可以以换行结束,也可以以空格结束
    (2)如果需要录入字符串:
    可以使用nextLine,只能以换行做为一次录入结束
    可以使用next,既可以以空格结束一次录入,也可以以换行结束
    (3)注意事项:
    在使用以空格结束的方法之后,再使用nextLine方法,无法正常录入字符串
  4. 解决方案:
    (1)在使用nextLine方法之前,多使用一次nextLine方法
    (2)分别使用两个Scanner对象录入

4 BigInteger类型

  1. 概述:BigInteger是java.math包提供的处理大整数类型,实现了大整数的存储
  2. 特点:
    (1)表示的整数可以超过long表示的范围
    (2)java.math包,需要导包
    (3)提供了操作大整数的各种简单方法

4.1 定义BigInteger对象

  1. 方法:BigInteger(String val)
    概述:将BigInteger的十进制字符串表示形式转换为BigInteger。

  2. 方法:BigInteger(String val, int radix)
    概述:将指定基数中的BigInteger的String表示形式转换为BigInteger。

代码

package demos4_big;

import java.math.BigInteger;

public class Demo01 {
    public static void main(String[] args) {
        byte b = 127;
        System.out.println(b);
        short s = 32767;
        System.out.println(s);
        int i = Integer.MAX_VALUE;
        System.out.println(i);
        long g = Long.MAX_VALUE;
        System.out.println(g);

        //将一个比较大的整数,进行封装(参数必须是字符串类型表示)
        BigInteger bi1 = new BigInteger("92233720368547758080001");
        System.out.println(bi1);
        //将传递的参数,当做指定的进制转为10进制的对象
        BigInteger bi2 = new BigInteger("100", 2);
        System.out.println(bi2);
    }
}

4.2 常用方法

方法名作用
public BigInteger abs()返回BigInteger对象的绝对值
public BigInteger negate()取该对象的反数
public BigInteger add(BigInteger val)加法运算
public BigInteger subtract(BigInteger val)减法运算
public BigInteger multiply(BigInteger val)乘法运算
public BigInteger divide(BigInteger val)除法运算

代码

package demos4_big;

import java.math.BigInteger;

public class Demo02 {
    public static void main(String[] args) {
        BigInteger bi1 = new BigInteger("100000000000000000000");
        //绝对值
        System.out.println(bi1.abs());
        //取反数
        System.out.println(bi1.negate());

        BigInteger bi2 = new BigInteger("9999");
        //两个过大的整数相加
        BigInteger bi3 = bi1.add(bi2);
        System.out.println(bi3);
        //两个过大的整数相减
        BigInteger bi4 = bi1.subtract(bi2);
        System.out.println(bi4);
        //两个过大的整数相乘
        BigInteger bi5 = bi1.multiply(bi2);
        System.out.println(bi5);
        //两个过大的整数相除
        BigInteger bi6 = bi1.divide(bi2);
        System.out.println(bi6);
    }
}

5 BigDecimal类型

  1. 概述:可以准确操作浮点数类型数据所属的类型
  2. 特点:
    (1)在Java.math包,使用需要导包
    (2)可以精确表示小数的位数
    (3)提供了操作小数的各种常用方法

5.1 定义BigDecimal对象

方法名作用
1、public BigDecimal(String val)将String类型的数据转换成BigDecimal对象

5.2 常用方法

方法名作用
public BigDecimal add(BigDecimal augend)加法运算
public BigDecimal subtract(BigDecimal subtrahend)减法运算
public BigDecimal multiply(BigDecimal multiplicand)乘法运算
public BigDecimal divide(BigDecimal divisor)除法运算,如果除不尽运行错误
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)精确除法运算
注意事项:
    (1)参数作用: 除数  精确位数   舍入方式
    (2)常用舍入模式: BigDecimal.ROUND_UP  向上取整
                        	BigDecimal.ROUND_FLOOR 向下取整法     
							BigDecimal.ROUND_HALF_UP 四舍五入

代码

package demos4_big;

import java.math.BigDecimal;

public class Demo03 {
    public static void main(String[] args) {
        float f = 12.123456789F;
        System.out.println(f);
        double d = 12.123456789123456789;
        System.out.println(d);
        //创建一个可以保留精确度的BigDecimal对象
        BigDecimal bd1 = new BigDecimal("12.1234567891234567890010001002");
        System.out.println(bd1);
        //小数相加
        BigDecimal bd2 = new BigDecimal("1.0");
        BigDecimal bd3 = bd1.add(bd2);
        System.out.println(bd3);
        //相减
        BigDecimal bd4 = bd1.subtract(bd2);
        System.out.println(bd4);
        //相乘
        BigDecimal bd5 = bd1.multiply(bd2);
        System.out.println(bd5);
        //相除:两个数相除,能除尽,使用该方法
        BigDecimal bd6 = bd1.divide(bd2);
        System.out.println(bd6);
        //如果两个数除不尽,使用该方法指定保留多少位,以及如何保留
        BigDecimal bd7 = new BigDecimal("3.0");
        System.out.println(bd2.divide(bd7,3,BigDecimal.ROUND_HALF_UP));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值