为什么选择Float over Double或反之?

时间:2014-03-25 05:13:25

标签: java double

我是一名大学生并且已经开始在java中学习编程,据我所知,float和double都做同样的事情,他们都是为了写整数小数位。但是我觉得我完全错了,因为显然不会有2个命令来实现同样的事情。有人可以解释是否存在差异,如果可能的话,请说明为什么浮动在双重情况下不起作用,反之亦然。

P.S。我不是要求单一测验或其他任何答案的答案,我已经在这里得到了我的名字,只是真的试图围绕浮动和双重之间的区别。

干杯,

克里斯。

4 个答案:

答案 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浮点。

希望这有助于您更好地了解差异。