在 Java 中,Double 和 float 都是用来表示浮点数的类,但两者有几个关键区别:
- Double 是double的包装类,float是float的包装类。
Double d = 1.2; // double类型
Float f = 1.2f; // float类型
- double类型的范围更大,精度更高。
double的范围约为±10^{308},精度为15-16位有效数字。
float的范围约为±10^{38},精度为6-7位有效数字。 - double是64位,float是32位。
double: 64 bits (1 bit sign, 11 bits exponent, 52 bits mantissa)
float: 32 bits (1 bit sign, 8 bits exponent, 23 bits mantissa)
- float占用内存更小,对精度要求不高时首选。
- Double和float都是Java中默认的浮点类型。
float f = 1.2; //默认double
float f = 1.2f; //显示声明float
总结:
Double与float都表示浮点数,double范围和精度更高,float更省内存。