
Java的浮点类型有两种:float和double。Java的浮点类型有固定的表数范围和字段长度,字段长度和表数范围和机器无关。Java的浮点数遵循IEEE754标准,采用二进制数据的科学计数法来表示浮点数,对于float型数值,第1位是符号位,接下里8位表示指数,再接下来的23位表示尾数;对于double类型数值,第一位也是符号位,接下来的11位表示指数,再接下来的52位表示尾数。
因为Java浮点数使用二进制数据的科学记数法来表示浮点数,因此可能不能精确表示一个浮点数,使用double类型的浮点数比float类型的浮点数更精确,但如果浮点数的精度足够高,依然可能发生这种情况,如果开发者需要精确保存一个浮点数,则可以考虑使用BigDecimal类。
double类型代表双精度浮点数,float类型代表单精度浮点数。一个double类型的数值占8字节、64位,一个float类型的字节占4字节,32位。Java语言的浮点数有两种表现形式:
十进制数形式:这种形式就是简单的浮点数,例如5.12、512.0、.512 。浮点数必须包含一个小数点,否则会被当成int类型处理。
科学记数法形式:例如5.12e2,5.12E2,表达的值是一样的。
必须指出的是,只有浮点类型的数值才可以使用科学记数法的形式来表示。例如,51200是一个int类型的值,但是512E2则是浮点类型的值。
Java语言的浮点类型默认是double类型,如果希望Java把一个浮点类型值当成float类型处理,应该在这个浮点类型值后紧跟f或F。例如,5.12代表一个double类型的值,占64位的内存空间;5.12f或5.12F才表示一个float类型的值,占32位的内存空间。当然,也可以在一个浮点数后添加d或D后缀,强制指定double类型,但通常没必要。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)