新手小白学JAVA 正则表达式 包装类 自动装箱/自动拆箱 BigDecimal

1 正则表达式Regex

1.1 概述

正确的字符串格式规则。
常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。

1.2 常见语法

在这里插入图片描述

1.3 String提供了支持正则表达式的方法

Matches(正则) : 当前字符串能否匹配正则表达式
replaceAll(正则,子串) : 替换子串
split(正则) : 拆分字符串

1.4 练习:测试输入身份证号

创建包: cn.tedu.api
创建类: TestRegex.java

package cn.tedu.api;

import java.util.Scanner;

/本类用于测试正则表达式/
/测试输入的身份证号,测试用户输入是否正确/
public class TestRegex {
public static void main(String[] args) {
//1.提示并接收用户输入的身份证号:
System.out.println(“请输入您的身份证号:”);
String input = new Scanner(System.in).nextLine();

    <span class="token comment">//2.编辑正则表达式</span>
    <span class="token comment">//身份证号的规律:一般都是18位,前17位都是数字,最后一位可能是数字,也有可能是X</span>
    <span class="token comment">//String regex = "[0-9]{17}[0-9X]";</span>
    <span class="token comment">/*单个\在java中有特殊的意义,认为这是一个转义符号
    * 所以如果你想单纯的表示这就是一个\,需要在它的前面加一个用来转义的\
    * 也就是\\*/</span>
    <span class="token class-name">String</span> regex <span class="token operator">=</span> <span class="token string">"\\d{17}[0-9X]"</span><span class="token punctuation">;</span>

    <span class="token comment">//3.判断用户输入的数据是否符合正则表达式的规则(也就是说用户输入的身份证号是否正确)</span>
    <span class="token keyword">if</span><span class="token punctuation">(</span>input<span class="token punctuation">.</span><span class="token function">matches</span><span class="token punctuation">(</span>regex<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
        <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"恭喜您!输入正确!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token keyword">else</span> <span class="token punctuation">{<!-- --></span>
        <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"输入不正确!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

2 包装类

把基本类型进行包装,提供更加完善的功能。
基本类型是没有任何功能的,只是一个变量,记录值,而包装类可以有更加丰富的功能

2.1 与基本类型的对应关系

在这里插入图片描述

2.2 Number

数字包装类的抽象父类。
提供了各种获取值的方式。
在这里插入图片描述
在这里插入图片描述

2.3 Integer

创建对象

方式一: new Integer(5);
方式二: Integer.valueOf(5);
Integer类中包含256个Integer缓存对象,范围是 -128~127
使用valueOf()时,如果指定范围内的值,直接访问缓存对象不新建;如果指定范围外的值,直接新建对象。

常见方法

static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析

2.4 练习: Number之Integer

创建包: cn.tedu. api
创建类: TestNumber.java

package cn.tedu.api;
/*本类用于测试包装类*/
public class TestNumber {
    //1.定义成员变量,注意要定义成静态的,因为静态只能调用静态
    static Integer i0;//成员变量可以不初始化
    public static void main(String[] args) {
        /*1.Integer包装类型的默认值是null*/
        //2.打印i0进行测试
        System.out.println(i0);//默认值为null
    <span class="token comment">//3.创建int类型对应包装类型Integer方式一</span>
    <span class="token class-name">Integer</span> i1 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Integer</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">Integer</span> i11 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Integer</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i1 <span class="token operator">==</span> i11<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//false,==比较地址值</span>

    <span class="token comment">//4.创建int类型对应包装类型Integer方式二</span>
    <span class="token comment">/*2.Integer有一个高效的效果(-128~127)
    * 在此范围内,相同的数据只会存一次,后续再存都是使用之前存过的数据*/</span>
    <span class="token class-name">Integer</span> i2 <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">127</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">Integer</span> i3 <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">127</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i1 <span class="token operator">==</span> i2<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//false,比较的是地址值</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i2 <span class="token operator">==</span> i3<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//true,Integer在范围内有高效效果</span>
    <span class="token class-name">Integer</span> i4 <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">300</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">Integer</span> i5 <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">300</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i4 <span class="token operator">==</span> i5<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//false,超出Integer高效范围</span>
<span class="token punctuation">}</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

2.5 Double

创建对象
  1. new Double(3.14)
  2. Double.valueOf(3.14)//和 new 没有区别
常用方法

Double.parseDouble();

2.5 练习: Number之Double

创建包: cn.tedu.api
创建类: TestNumber.java

package cn.tedu.api;
/*本类用于测试包装类*/
public class TestNumber {
    //1.定义成员变量,注意要定义成静态的,因为静态只能调用静态
    static Integer i0;//成员变量可以不初始化
    public static void main(String[] args) {
        /*1.Integer包装类型的默认值是null*/
        //2.打印i0进行测试
        System.out.println(i0);//默认值为null
    <span class="token comment">//3.创建int类型对应包装类型Integer方式一</span>
    <span class="token class-name">Integer</span> i1 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Integer</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">Integer</span> i11 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Integer</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i1 <span class="token operator">==</span> i11<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//false,==比较地址值</span>

    <span class="token comment">//4.创建int类型对应包装类型Integer方式二</span>
    <span class="token comment">/*2.Integer有一个高效的效果(-128~127)
    * 在此范围内,相同的数据只会存一次,后续再存都是使用之前存过的数据*/</span>
    <span class="token class-name">Integer</span> i2 <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">127</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">Integer</span> i3 <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">127</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i1 <span class="token operator">==</span> i2<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//false,比较的是地址值</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i2 <span class="token operator">==</span> i3<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//true,Integer在范围内有高效效果</span>
    <span class="token class-name">Integer</span> i4 <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">300</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">Integer</span> i5 <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">300</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i4 <span class="token operator">==</span> i5<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//false,超出Integer高效范围</span>

    <span class="token comment">//5.创建double类型对应包装类型Double方式</span>
    <span class="token class-name">Double</span> d1 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Double</span><span class="token punctuation">(</span><span class="token number">3.14</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">Double</span> d2 <span class="token operator">=</span> <span class="token class-name">Double</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">3.14</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">Double</span> d3 <span class="token operator">=</span> <span class="token class-name">Double</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token number">3.14</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>d1 <span class="token operator">==</span> d2<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//false</span>
    <span class="token comment">/*只有Integer才有"高效"的效果*/</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>d2 <span class="token operator">==</span> d3<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//false</span>

    <span class="token comment">//6.测试常用的方法</span>
    <span class="token comment">/*原因:parseInt()已经把字符串800转成了int类型的800,所以是运算而不是拼接*/</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i1<span class="token punctuation">.</span><span class="token function">parseInt</span><span class="token punctuation">(</span><span class="token string">"800"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//810,执行了加法运算</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>d1<span class="token punctuation">.</span><span class="token function">parseDouble</span><span class="token punctuation">(</span><span class="token string">"2.2"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//3.2,执行了加法运算</span>
<span class="token punctuation">}</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

3 自动装箱和自动拆箱

3.1 概述

自动装箱:把 基本类型 包装成对应的 包装类型 的过程
Integer a = 5;//a是引用类型,引用了包装对象的地址。
编译器会完成对象的自动装箱:Integer a = Integer.valueOf(5);

自动拆箱:从包装类型的值,自动变成 基本类型的值
int i = a;//a现在是包装类型,没法给变量赋值,需要把5取出来。
编译器会完成自动拆箱:int i = a.intValue();

3.2 练习: 自动装箱与自动拆箱测试

创建包: cn.tedu.api
创建类: TestBox.java

package cn.tedu.api;
/*本类用于测试自动装箱和自动拆箱*/
public class TestBox {
    public static void main(String[] args) {
        //1.定义包装类型的数据
        //回顾:以前创建包装类型的两种方式
        Integer i1 = new Integer(127);
        Integer i2 = Integer.valueOf(127);
        //2.现在的方式:
        /*1.自动装箱:编译器会自动把基本类型int 5,包装成包装类型Integer
        * 然后交给i3来保存,自动装箱底层发生的代码Integer.valueOf(5);
        * valueOf()的方向: int --> Integer*/
        Integer i3 = 5;//不会报错,这个现象就是自动装箱
        /*2.自动拆箱:编译器会自动把包装类型的i1拆掉"箱子",变回基本类型数据127
        * 然后交给i4来保存,自动拆箱底层发生的代码:i1.intValue();
        * intValue()的方向:Integer -> int
        * */
        int i4 = i1;//不会报错,这个现象就是自动拆箱
    }
}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

4 BigDecimal

BigDecimal:常用来解决精确的浮点数运算不精确的问题

4.1 创建对象

方式一 :
BigDecimal(double val)
将double转换为BigDecimal,后者是double的二进制浮点值十进制表示形式,有坑!
方式二 :
BigDecimal(String val)
将String类型字符串的形式转换为BigDecimal

4.2 常用方法

Add(BigDecimal bd) : 做加法运算
Subtract(BigDecimal bd) : 做减法运算
Multiply(BigDecimal bd) : 做乘法运算
Divide(BigDecimal bd) : 做除法运算,除不尽时会抛异常
Divide(BigDecimal bd,保留位数,舍入方式) : 除不尽时使用
setScale(保留位数,舍入方式) : 同上
pow(int n) : 求数据的几次幂

4.3 练习:测试常用方法

创建包: cn.tedu.bigdecimal
创建类: TestBigDecimal.java
需求: 接收用户输入的两个小数,做运算

package cn.tedu.api;

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

public class TestBigDecimal {
public static void main(String[] args) {
//f1();//使用普通的 ±*/ 四则运算,暴露出浮点数运算不精确的问题
f2();//使用BigDecimal来解决浮点数运算不精确的问题
}

<span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">f2</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
    <span class="token comment">//1.提示并接收用户输入的两个小数</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"请输入您要计算的两个小数:"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">double</span> a <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Scanner</span><span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>in<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">nextDouble</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">double</span> b <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Scanner</span><span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>in<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">nextDouble</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">//2.创建工具类对象,把基本类型a和b交给工具类对象BigDecimal来保存</span>
    <span class="token comment">/*1.最好不要用double作为构造函数的参数,不然还会有不精确的现象,有坑!!!*/</span>
    <span class="token comment">/*2.最好使用重载的,参数类型是String的构造函数
    * double转String,直接拼个空串就可以*/</span>
    <span class="token class-name">BigDecimal</span> bd1 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BigDecimal</span><span class="token punctuation">(</span>a<span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">BigDecimal</span> bd2 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BigDecimal</span><span class="token punctuation">(</span>b<span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">//3.通过BigDecimal的对象来调用其方法,实现精确运算</span>
    <span class="token comment">//3.1 定义BigDecimal类型的引用类型变量来保存结果</span>
    <span class="token class-name">BigDecimal</span> bd3<span class="token punctuation">;</span>
    <span class="token comment">//3.2 Add(BigDecimal bd) : 做加法运算</span>
    bd3 <span class="token operator">=</span> bd1<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>bd2<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>bd3<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">//3.3 Subtract(BigDecimal bd) : 做减法运算</span>
    bd3 <span class="token operator">=</span> bd1<span class="token punctuation">.</span><span class="token function">subtract</span><span class="token punctuation">(</span>bd2<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>bd3<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">//3.4 Multiply(BigDecimal bd) : 做乘法运算</span>
    bd3 <span class="token operator">=</span> bd1<span class="token punctuation">.</span><span class="token function">multiply</span><span class="token punctuation">(</span>bd2<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>bd3<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">//3.5 Divide(BigDecimal bd) : 做除法运算,除不尽时会抛异常</span>
    <span class="token comment">/*3.除法运算,除不尽时会抛出异常ArithmeticException*/</span>
    <span class="token comment">//方案一:(除不尽时有问题)</span>
    <span class="token comment">//bd3 = bd1.divide(bd2);</span>
    <span class="token comment">/*divide(m,n,o)
    m是要除以哪个对象,n指要保留几位,o指舍入方式(比如四舍五入)*/</span>
    <span class="token comment">//方案二:</span>
    bd3 <span class="token operator">=</span> bd1<span class="token punctuation">.</span><span class="token function">divide</span><span class="token punctuation">(</span>bd2<span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token class-name">BigDecimal</span><span class="token punctuation">.</span>ROUND_HALF_UP<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>bd3<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token punctuation">}</span>

<span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">f1</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
    <span class="token comment">//1.提示并接收用户输入的两个小数</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"请输入您要计算的两个小数:"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">double</span> a <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Scanner</span><span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>in<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">nextDouble</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">double</span> b <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Scanner</span><span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>in<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">nextDouble</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">//2.做运算</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a <span class="token operator">+</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//不精确</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a <span class="token operator">-</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//不精确</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a <span class="token operator">*</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//不精确</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a <span class="token operator">/</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//不精确</span>
<span class="token punctuation">}</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

到这里,API第一课就结束啦,恭喜你又闯过一关哦~

5 拓展

舍入方式解析
ROUND_HALF_UP 四舍五入,五入 如:4.4结果是4; 4.5结果是5
ROUND_HALF_DOWN 五舍六入,五不入 如:4.5结果是4; 4.6结果是5
ROUND_HALF_EVEN 公平舍入(银行常用)
比如:在5和6之间,靠近5就舍弃成5,靠近6就进位成6,如果是5.5,就找偶数,变成6
ROUND_UP 直接进位,不算0.1还是0.9,都进位
ROUND_DOWN 直接舍弃,不算0.1还是0.9,都舍弃
ROUND_CEILING(天花板) 向上取整,取实际值的大值
朝正无穷方向round 如果为正数,行为和round_up一样,如果为负数,行为和round_down一样
ROUND_FLOOR(地板) 向下取整,取实际值的小值
朝负无穷方向round 如果为正数,行为和round_down一样,如果为负数,行为和round_up一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值