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

初学java,听老师说3.14是双精度,为啥咧。。或者有反驳的么。。单精度和双精度到底有啥区别呀。。

单精度和双精度的区别就是,双精度要比单精度所存储的位数要多,至于说3.14师双精度,是因为Java中,默认的小数都是double类型,也就算双精度的,如果要定义单精度的话,那就要在小数的后面加上一个f或者F,即 double d = 3.14; float f = 3.14f; 一定要注意后面有没有“f”和“F”啊,这个初学的时候,经常会考到。楼上说的,是对,但是,他那样写,就一定会报错。记住,单精度的变量定义,一定要在值的后面加上标识。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-11-22
双精度可以存储的数值范围更大,可以精确到小数点后的位数更多。但代价是要用更多的内存空间来存储。
3.14自身是没有所谓精度的,精度是对变量而言的。但是Java默认会把小数当成双精度,如果要表示单精度,需要加F
例如:
float a = 3.14F;这时变量a就是单精度
double b = 3.14;这时变量b就是双精度本回答被提问者采纳
第2个回答  2013-03-20
单精度和双精度的取值范围和精度是不同的

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

双精度:double的精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8字节空间。
第3个回答  2018-10-03
简单的说: float保留8位数字 double保留16位数字
相似回答