Java-浮点数和双精度数之间的区别
1)Java中的float数据类型
1)float是Java中的一种数据类型(换句话说,它是具有特殊含义的关键字)。
2)float在内存中占用4个字节(即32位)(换句话说,我们可以表示(+,-)3.40282347E+38FNumbers)。
示例1:这里我们正在检查float的大小。
class FloatSize { public static void main(String[] args){ float a ; System.out.println(Float.SIZE/8 + " BYTES"); } }
输出结果
D:\Java Articles>java FloatSize 4 BYTES
3)换句话说,float是单精度浮点十进制数(即,我们可以表示7个十进制精度的位,或者简单地说,我们可以在十进制后取7位数字)。
范例2:
class FloatPrecision { public static void main(String[] args){ float a = 2.3456784f ; System.out.println("Float Precision after decimal is " + a); } }
输出:
D:\Java Articles>java FloatPrecision Float Precision after decimal is 2.3456783
4)float的默认值为0.0f。
5)float基本上用于在大型浮点十进制数数组中节省内存(更好的内存利用率)。
6)float不是代表十进制数字的默认数据类型。
7)建议将浮点数用于精确值(即小数点右边的7位数字)。
2)Java中的double数据类型
1)double是Java中的一种数据类型(或者换句话说,它是具有特殊含义的关键字)。
2)double在内存中占用8个字节(即64位)(换句话说,我们可以表示(+,-)±1.79769313486231570E+308数字)。
示例1:这里我们正在检查float的大小。
class DoubleSize { public static void main(String[] args){ double a ; System.out.println(Double.SIZE/8 + " BYTES"); } }
输出结果
D:\Java Articles>java DoubleSize 8 BYTES
3)换句话说,double是双精度浮点十进制数(即,我们可以表示15位小数精度,或者简单地说,我们可以在小数点后取15位数字)。
范例2:
class DoublePrecision { public static void main(String[] args){ double a = 2.345678432433564 ; System.out.println("Double Precision after decimal is " + a); } }
输出结果
D:\Java Articles>java DoublePrecision Double Precision after decimal is 2.345678432433564
4)double的默认值为0.0d。
5)double基本上用于表示双精度浮点数。
6)double是表示十进制数字的默认数据类型。
7)建议使用double作为精确值(即小数点右边15位)。