【发布时间】:2021-08-22 18:25:21
【问题描述】:
我刚刚开始学习编码,这可能是一个非常简单的问题,但我已经看到 double 用于大于 int 可以容纳的数字。如果我理解正确,double 可能不如使用 long 精确。
所以如果我有一个大于 int 可以容纳的数字,最好使用 double 还是 long?在什么情况下一种优于另一种?这方面的最佳做法是什么?
(假设我想用地球人口存储一个变量。是 double 还是 long 首选?)
【问题讨论】:
-
注意还有
BigDecimal和BigInteger类型。 -
就个人而言,我会使用 long ,因为地球人口将是一个整数。您也可以使用
BigInteger或BigDecimal,尽管它们可能有点矫枉过正。 -
long用于精确整数值,例如1234567890123;如果值大于MAX_VALUE(~1e19),您将有 整数溢出 (完全错误的值)。double用于 近似 值:最多 (2^53 - 1~1e16) 整数值是精确,但随后它们变为近似高达~1e308(无灾难整数溢出) -
long和double的最大区别在于long只能保存整数,而double是浮点数类型(它可以保存分数)。见:Primitive Data Types
标签: java integer double long-integer