关于java单精度与双精度的问题

2024-12-31 15:36:20
推荐回答(4个)
回答1:

单精度和双精度的区别就是,双精度要比单精度所存储的位数要多,至于说3.14师双精度,是因为Java中,默认的小数都是double类型,也就算双精度的,如果要定义单精度的话,那就要在小数的后面加上一个f或者F,即 double d = 3.14; float f = 3.14f; 一定要注意后面有没有“f”和“F”啊,这个初学的时候,经常会考到。楼上说的,是对,但是,他那样写,就一定会报错。记住,单精度的变量定义,一定要在值的后面加上标识。

回答2:

双精度可以存储的数值范围更大,可以精确到小数点后的位数更多。但代价是要用更多的内存空间来存储。
3.14自身是没有所谓精度的,精度是对变量而言的。但是Java默认会把小数当成双精度,如果要表示单精度,需要加F
例如:
float a = 3.14F;这时变量a就是单精度
double b = 3.14;这时变量b就是双精度

回答3:

单精度和双精度的取值范围和精度是不同的

单精度:float的精度是6位有效数字,取值范围是10的-38次方到10的38次方,float占用4字节空间

双精度:double的精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8字节空间。

回答4:

简单的说: float保留8位数字 double保留16位数字