Java学习笔记(十)Number & Math 类

文章目录

      • 一、Number & Math 类
        • (一)、Number类
        • (二)、Math类
        • (三)、Number & Math 类方法

一、Number & Math 类

(一)、Number类

使用Java在开发过程中常会用到对象,故Java为每一种内置数据类型提供的对应的包装类。所有这些包装类都是抽象类Number的子类,而Number类属于java.lang包。

内置数据类型 对应的包装类
int Integer
short Short
long Long
byte Byte
double Double
float Float

这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型

package day5;

public class NumberMath {
       public static void main(String[] args) {
              // TODO Auto-generated method stub
              Integer data = 10;//声明一个Integer对象
              System.out.println(data+5);//拆箱过程,将对象拆成内置类型
       }
}

(二)、Math类

Java中Math类包含了数学的基本运算,三角函数、指数函数、对数等运算方法,这些方法都为static形式,可通过Math类直接调用。例子如下。

package day5;

public class NumberMath {
       public static void main(String[] args) {
              // TODO Auto-generated method stub
              System.out.println("PI="+Math.PI);
              System.out.println("cos(π/4)="+Math.cos(Math.PI/4));//三角函数
              System.out.println("log10(100)="+Math.log10(100));//对数函数
              System.out.println("2^3="+Math.pow(2, 3));//指数函数
       }
}

输出信息如下。

PI=3.141592653589793
cos(π/4)=0.7071067811865476
log10(100)=2.0
2^3=8.0

(三)、Number & Math 类方法

Number类方法如下:

  • xxxValue():将Number对象转换成对应xxx数据类型并返回。如下面例子。
    Integer idata = 10;//创建一个Integer对象
    Float fdata = idata.floatValue();//调用Number方法获取它的浮点型数值,fdata为10.0
    short sdata = fdata.shortValue();//调用Number方法获取它的短整型型数值,sdata为10
  • compareTo():比较相同类型的Number对象和参数的大小,若Number对象的值大于参数则返回1,相等则返回0,小于则返回-1。如下面例子。
    Integer idata = 10;
    idata.compareTo(1);//返回1
    idata.compareTo(10);//返回0
    idata.compareTo(20);//返回-1
  • equals():判断Number对象和参数是否相同。相同则返回true,否则返回false。
  • valueOf():用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型。
  • toString():返回以一个字符串表示的 Number 对象值。
  • parseInt():将字符串参数作为有符号的十进制整数进行解析。如下面例子。
  int decimal = Integer.parseInt("614");//默认基值为10,即该字符串数字为十进制数,并输出该十进制数转换为整型的数字
  System.out.println(decimal);
  int octal = Integer.parseInt("10", 8);//设置基值为8,即该字符串数字为八进制数,并输出该八进制数转换为整型的数字
  System.out.println(octal);
  /*输出信息为
614
8
*/

Math类方法如下:

  • abs():返回参数的绝对值。
  • ceil():返回大于等于(>=)给定参数的的最小整数,类型为double。(向上取整
  • floor():返回小于等于(<=)给定参数的最大整数 ,类型为double。(向下取整
  • rint():返回与参数最接近的整数。类型为double。如果参数为浮点型(float/double),且为中位值,则返回最接近参数的偶数(even)。如参数为1.5则返回2.0,参数为2.5则返回2.0。(找最接近的数
  • round():它表示四舍五入,算法为Math.floor(x+0.5) ,即将原来的数字加上0.5后再向下取整。返回数值类型为long。(四舍五入

下面以ceil()、floor()、rint()和round()作比较。

  //ceil方法 返回>=参数的最小double型整数(向上取整)
  System.out.println(Math.ceil(1.4));//2>1.4
  System.out.println(Math.ceil(1.5));//2>1.5
  System.out.println(Math.ceil(-1.4));//-1.0>-1.4
  System.out.println(Math.ceil(-1.5));//-1.0>-1.5

  //floor方法 返回<=参数的最大double型整数(向下取整)
  System.out.println(Math.floor(1.4));//1.4>1.0
  System.out.println(Math.floor(1.5));//1.5>1.0
  System.out.println(Math.floor(-1.4));//-1.4>-2.0
  System.out.println(Math.floor(-1.5));//-1.5>-2.0

  //rint()方法 返回与参数最接近的double整数
  System.out.println(Math.rint(1.4));//1.0更接近1.4
  System.out.println(Math.rint(1.5));//1.5为中位值,则返回偶数2.0
  System.out.println(Math.rint(-1.4));//-1.0更接近-1.4
  System.out.println(Math.rint(-1.5));//-1.5为中位值,则返回偶数-2.0

  //round()方法相当于四舍五入即将原来的数字加上0.5后再向下取整  返回一个最接近的int、long型值
  System.out.println(Math.round(1.4));//四舍 1
  System.out.println(Math.round(1.5));//五入 2
  System.out.println(Math.round(-1.4));//四舍 -1
  System.out.println(Math.round(-1.5));//五入相当于 floor(-1.5+0.5) -1
  System.out.println(Math.round(-1.6));//向下取整 -2

返回结果如下:

类方法 返回结果
Math.ceil(1.4) 2.0
Math.ceil(1.5) 2.0
Math.ceil(-1.4) -1.0
Math.ceil(-1.5) -1.0
Math.floor(1.4) 1.0
Math.floor(1.5) 1.0
Math.floor(-1.4) -2.0
Math.floor(-1.5) -2.0
Math.rint(1.4) 1.0
Math.rint(1.5) 2.0
Math.rint(-1.4) -1.0
Math.rint(-1.5) -2.0
Math.round(1.4) 1
Math.round(1.5) 2
Math.round(-1.4) -1
Math.round(-1.5) -1
Math.round(-1.6) -2
  • min():返回两个参数中的最小值
  • max():返回两个参数中的最大值
  • exp():返回自然数底数e的参数次方
  • log():返回参数的自然数底数对数值
  • pow():返回第一个参数的第二个参数次方
  • sqrt():返回参数的算术平方根
  • sin()、cos()、tan()、asin()、acos()、atan():返回指定double类型参数的正弦值,余弦值,正切值,反正弦值,反余弦值,反正切值。
  • atan2():将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。该方法通过计算 y/x 的反正切值来计算相角 theta,范围为从 -pi 到 pi
  • toDegrees():将参数转化为角度
  • toRadians():将角度(degree)转换为弧度(radians)
    System.out.println(Math.toRadians(180));//返回pi
    System.out.println(Math.toDegrees(Math.PI));//返回180
  • random():返回一个double类型的随机数

参考链接:菜鸟教程-Number & Math 类

你可能感兴趣的:(Java)