【问题标题】:Which data type should be chosen for big values in Java?Java中的大值应该选择哪种数据类型?
【发布时间】:2014-02-09 12:34:15
【问题描述】:

什么数据类型可以处理 Java 中的最大值?

我必须存储不带逗号的大数字(我还不知道实际大小)。

在 C 语言中,我认为我会使用 unsigned long int 之类的东西。

Java 中最好的类型是什么?

【问题讨论】:

  • 你阅读了BigInteger的文档

标签: java variables int double


【解决方案1】:

java中最大的原始类型是long,是一个有符号的64位整数-最大值9223372036854775807

对于任意大的整数,使用Biginteger 的实例。

【讨论】:

  • 应该是“最大的原始整数类型...”。 double 是原始的,可以包含更大的数字。
  • @PatriciaShanahan 取决于您如何定义“最大”。如果是“位数”,那么long 是“最大的”,因为它拥有(即打印)比double 更多的位数。
  • 按存储的位数,long 和 double 大小相同,因为它们都是 64 位二进制类型。打印的位数非常随意,因为 Double 的 toString 会四舍五入以避免打印精确表示某些 double 值所需的数百位数字。
  • @PatriciaShanahan 实际上没有。与long 不同,double 的 64 位并非全部用于表示数字:有 1 个符号位和 11 个指数位,仅剩下 52 位用于有效数字(数字)。你可以阅读更多关于它的信息here。这意味着double 可以准确表示的最大整数是4503599627370496,它比long 的最大值小/短3 位。
【解决方案2】:

Java 中能保持最大值的数据类型是BigInteger。如果您不知道您的最大值是多少,我建议您使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-03
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多