FloatTest.java
package sample;
public class FloatTest
{
public static void main(String[] args)
{
/*
浮点类型:
浮点数有两个表示形式
十进制形式,就是简单的浮点数,例如:5.12,512.0,浮点数必须包含一个小数点,否则会被当成int类型处理
科学计数法形式,例如:5.12e2,5.12E2
只有浮点数才能使用科学计数法表示,例如:51200是一个int类型的值,但是512E2则是浮点类型的值。
Java还提供了三个特殊的浮点数值:正无穷大,负无穷大,非数,用于表示溢出和出错。
使用一个正数除以0将得到正无穷大,使用一个负数除以0将得到一个负无穷大,0.0除以0.0或对一个负数开方将得到一个非数。
所有的正无穷大数值都是相等的,所有的负无穷大都是相等的,而NaN不是任何值相等,甚至和NaN都不相等。
只有浮点数除以0才能到无穷大,Java会把0当成浮点数0.0处理,如果一个整数值除以0,则会抛出一个异常。
*/
float af = 5.2345556F;//范围溢出
//下面将看到af的值已经发生了变化
System.out.println(af);
double a = 0.0;
double c = Double.NEGATIVE_INFINITY;
float d = Float.NEGATIVE_INFINITY;
//看到float和double的负无穷大是相等的
System.out.println(c==d);
//0.0除以0.0将出现非数
System.out.println(a/a);
//两个非数之间是不相等的
System.out.println(a/a == Float.NaN);
//所有正无穷大都是相等的
System.out.println(6.0 / 0 == 555.0/0);
//负数除以0.0得到负无穷大
System.out.println(-8 / a);
//下面代码将抛出除以0的异常
//System.out.println(0/0);
//System.out.println(6/0);
float e = 512E2F;
System.out.println(e);
}
}
javac -d . FloatTest.java
java sample.FloatTest
输出结果:
5.2345557
true
NaN
false
true
-Infinity
51200.0