Java 中大数的 double 与 long

问题描述 投票:0回答:1

我刚刚开始学习编码,这可能是一个非常简单的问题,但我已经看到 double 用于大于 int 可以容纳的数字。如果我理解正确的话, double 不如使用 long 精确。

那么如果我有一个大于 int 可以容纳的数字,最好使用 double 或 long 吗?在什么情况下,其中一种优于另一种?对此的最佳实践是什么?

(假设我想存储一个包含地球人口的变量。是 double 还是 long 更好?)

java integer double long-integer
1个回答
2
投票

tl;博士

对于人类群体,使用

long
原始或
Long
类。

详情

浮点类型牺牲精度来换取执行速度。 Java 中的这些类型包括

float
/
Float
double
/
Double

尺寸 整数 小数
32 位
int
/
Integer
float
/
Float
64 位
long
/
Long
double
/
Double
各有不同
BigInteger
BigDecimal

如果使用整数(无分数):

  • 对于范围从 -2^31 到 2^31-1 的较小数字(大约正负 20 亿),请使用
    int
    /
    Integer
    。内容需要 32 位。
  • 对于较大的数字,请使用
    long
    /
    Long
    。内容需要 64 位。
  • 对于非常大的数字,请使用
    BigInteger

如果使用小数(不是整数):

  • 对于 (2-2^-23) * 2^127 和 2^-149 之间的数字,如果您关心准确性,请使用
    float
    /
    Float
    。内容需要 32 位。
  • 对于较大/较小的数字,如果您关心准确性,请使用
    double
    /
    Double
    。内容需要 64 位。
  • 对于更极端的数字,请使用
    BigDecimal
  • 如果您关心准确性(例如金钱问题),请使用
    BigDecimal

因此,对于地球上的人类人口,请使用

long
/
Long

© www.soinside.com 2019 - 2024. All rights reserved.