[面试题补缺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
}
}
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()
返回一个随机数。