public class TestDouble {
public static void main(String args[]) {
System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("123.3 / 100 = " + (123.3 / 100));
}
}
运行结果
使用double类型的数值进行计算,其结果是不精确的。
单精度(Single Precision)浮点数是32位(即4字节)的,双精度(Double Precision)浮点数是64位(即8字节)的。两者的S、E、M所占的位数以及表示方法由下表可知:
S | E | M | 表示公式 | 偏移量 | |
单精度浮点数 |
1(第31位) |
8(30到23位) |
23(22到0位) |
(-1)^S*2(E-127)*1.M |
127 |
双精度浮点数 |
1(第63位) |
11(62到52位) |
52(51到0位) |
(-1)^S*2(E-1023)*1.M |
1023 |