我是一名大学生并且已经开始在java中学习编程,据我所知,float和double都做同样的事情,他们都是为了写整数小数位。但是我觉得我完全错了,因为显然不会有2个命令来实现同样的事情。有人可以解释是否存在差异,如果可能的话,请说明为什么浮动在双重情况下不起作用,反之亦然。
P.S。我不是要求单一测验或其他任何答案的答案,我已经在这里得到了我的名字,只是真的试图围绕浮动和双重之间的区别。
干杯,
克里斯。
答案 0 :(得分:5)
浮点数是4个字节宽,而double是8个字节宽。在大多数情况下,您可能更喜欢使用double。您可以查看IEEE floating point standard.
另外需要注意的是,浮点数可以是双打,但双打不能是浮点数,因为双打范围更大。
浮动范围为1.40129846432481707e-45至3.40282346638528860e + 38
双倍范围是4.94065645841246544e-324d至1.79769313486231570e + 308d
答案 1 :(得分:1)
浮点数占用的空间较少,但代价是精度较低(浮点数为4个字节,双精度数为8)。这就是你长期选择int的原因。某些数学运算在双打时也可能会慢一些,但实际上,你可能想要双倍。
答案 2 :(得分:0)
通常,float使用4个字节,double使用8个字节以浮点(尾数+指数)格式/表示形式存储值。如果您有兴趣,请参阅此wikepedia撰写的有关这些概念的介绍:http://en.wikipedia.org/wiki/Floating_point
答案 3 :(得分:0)
我所知道的唯一区别是精度, 其中float数据类型是单精度32位IEEE 754浮点数 和double数据类型是双精度64位IEEE 754浮点。
希望这有助于您更好地了解差异。