1, IEEE754规定的5个特殊的浮点数
运行以下代码,
public class Main{
public static void main(String[] args) {
double a = 3.0/0;
System.out.println(a);
System.out.println(1/a);
System.out.println(-a);
System.out.println(1/(-a));
System.out.println(a-a);
System.out.println(a/a);
}
}
得出结果:
Infinity
0.0
-Infinity
-0.0
NaN
NaN
这5个数字就是特殊的浮点数值。Infinity代表无穷大。NaN表示不是一个数,计算0/0或者负数的平方根结果就是NaN。
2.任意精度小数
java 有一个类:java.math.BigDecimal 可以求出指定位数的小数。
import java.math.BigDecimal;
import java.math.MathContext;
public class Main{
public static void main(String[] args) {
//有效数字100位,任意精度小数
BigDecimal a = BigDecimal.valueOf(1).divide(BigDecimal.valueOf(6), new MathContext(100));
}
}
3 合并模式 浮点数常用的是四舍五入,或者四舍六入五成双(在统计学里防止.5舍入误差的累计)。