java中的float类型?

Python011

java中的float类型?,第1张

java中的float类型

.浮点类型

1) 与整数类型一样,同样有固定的表述范围和字段长度,且不受具体的操作系统的影响,保证了Java的跨平台性

2) Java语言中,浮点类型有两种表现形式,分别是:

  a. 十进制数形式, 如3.14

  b. 科学计数法,如,3.14e2, 3.14e-2, -3.14E2

3) Java语言中,默认的浮点数类型是double,声明float类型的时候,后面必须添加字母f或者F,如3.14F,3.14f

4) Java中两种浮点类型的表述范围:

精度和双精度。

float是单精度类型,精度是8位有效数字,取值范围是10的-38次方到10的38次方,float占用4个字节的存储空间

double是双精度类型,精度是17位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间

当你不声明的时候,默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f

例如:float a=1.3

则会提示不能将double转化成float 这成为窄型转化

如果要用float来修饰的话,则应该使用float a=1.3f

注意float是8位有效数字,第7位数字将会产生四舍五入

所以如果一个float变量 这样定义: float a=1.32344435 则第7位将产生四舍五入(5及5以下的都将舍去)

float f = 83454545.78f

System.out.println(f)

输出8.3454544E7,即8.3454544*10的7次方

这和数值范围为 1.4013E-45 ~ 3.4028E+38不冲突啊,但是float类型就会存在精度丢失的问题,如果你想要的精度无损,建议使用BigDecimal

如:

BigDecimal f = new BigDecimal("3.141592653")

System.out.println(f)