[面试题补缺001]Java Number & Math 类

知识点

1、Java round() 方法

round() 方法返回一个最接近的 int、long 型值,四舍五入。
round 表示"四舍五入",算法为Math.floor(x+0.5) ,即将原来的数字加上 0.5 后再向下取整,所以 Math.round(11.5) 的结果为 12,Math.round(-11.5) 的结果为 -11。

实例

public class Test{
    public static void main(String args[]){
        double d = 100.675;
        double e = 100.500;
        float f = 100;
        float g = 90f;
 
        System.out.println(Math.round(d));
        System.out.println(Math.round(e)); 
        System.out.println(Math.round(f)); 
        System.out.println(Math.round(g)); 
    }
}

编译以上程序,输出结果为:

101
101
100
90

2、Java valueOf() 方法

valueOf() 方法用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型, String等。
该方法是静态方法。该方法可以接收两个参数一个是字符串,一个是基数radix。

实例

public class Test{
public static void main(String args[]){
                Integer x =Integer.valueOf(9);
                Double c = Double.valueOf(5);
                Float a = Float.valueOf("80");              

                Integer b = Integer.valueOf("444",16);   // 使用 16 进制

                System.out.println(x);
                System.out.println(c);
                System.out.println(a);
                System.out.println(b);
        }
}

编译以上程序,输出结果为:

9
5.0
80.0
1092

练习题

例题1

public class Main {
    public static void main(String[] args) {

        Integer i1 = 100;
        Integer i2 = 100;

        Integer i3 = 200;
        Integer i4 = 200;

        Integer i5 = 300;
        Integer i6 = 300;

        Integer i7 = 1000;
        Integer i8 = 1000;

        
        Integer m1 = Integer.valueOf("100");
        Integer m2 = Integer.valueOf(200);

        short num = (short)Math.pow(2, 15);


        System.out.println(i1 == i2); // true      1
        System.out.println(i3 == i4); // false     2
        System.out.println(i5 == i6); // false     3
        System.out.println(i7 == i8); // false     4

        System.out.println(i1 == m1); // true      5
        System.out.println(i2 == m2); // false     6

        System.out.println(num); // -32768    溢出 (-32768二进制补码)1000 0000 0000 0000       
        System.out.println((short)(num*2)); // 0
    }

}

123456参考文章

78
short型占两个字节,16位
原码取值范围 : -2^15+1 —— 2^15-1 (-32767-32767) 二进制原码范围:1111,1111,1111,1111 —— 0111,1111,1111,1111
补码取值范围 : -2^15 —— 2^15-1 (-32768-32767) 二进制补码范围:1000,0000,0000,0000 —— 0111,1111,1111,1111 (补码正负0唯一,所以比原码多一个)

扩展

xxxValue()
将 Number 对象转换为xxx数据类型的值并返回。

compareTo()
将number对象与参数比较。

equals()
判断number对象是否与参数相等。

toString()
以字符串形式返回值。

parseInt()
将字符串解析为int类型。

abs()
返回参数的绝对值。

ceil()
返回大于等于( >= )给定参数的的最小整数,类型为双精度浮点型。
floor()
返回小于等于(<=)给定参数的最大整数 。

min()
返回两个参数中的最小值。
max()
返回两个参数中的最大值。

exp()
返回自然数底数e的参数次方。
log()
返回参数的自然数底数的对数值。

pow()
返回第一个参数的第二个参数次方。
sqrt()
求参数的算术平方根。

random()
返回一个随机数。

posted @ 2022-03-12 23:01  Code7Rain  阅读(32)  评论(0编辑  收藏  举报