一尘不染

Java中的float和double数据类型

java

float数据类型是单精度32位IEEE 754浮点,double数据类型是双精度64位IEEE 754浮点。

这是什么意思?我什么时候应该使用float而不是double?


阅读 486

收藏
2020-03-07

共1个答案

一尘不染

总结一下:

  • float用32位表示,带有1个符号位,8位指数和23位有效数(或从科学记号中得出的结果:2.33728 * 10 12; 33728为有效数)。
  • double 用64位表示,带有1个符号位,11个指数位和52个有效位。

默认情况下,Java double用来表示其浮点数字(因此3.14键入文字double)。这也是数据类型,它将为你提供更大的数字范围,因此,我强烈建议在上使用它float

有可能是某些库,实际上迫使你的使用float,但一般-除非你能保证你的结果将是小到足以适应float的规定范围,那么最好与选择double

如果你需要准确性-例如,你不能使用不正确的十进制值(例如1/10 + 2/10),或者你正在使用货币进行任何操作(例如,在系统中代表$ 10.33),则使用BigDecimal,可以支持任意精度和类似情况的优雅处理。

2020-03-07