【问题标题】:Datatype to store 20 digit number存储 20 位数字的数据类型
【发布时间】:2014-11-09 04:48:36
【问题描述】:

我有一个 20 位的数字,哪种数据类型支持存储这个数字?我已经尝试了很长时间,但我已经超出了范围。

号码 = 48565664968483514466

然后我必须将此数字转换为 Base36 以生成条形码。

【问题讨论】:

  • BigInteger - 当我尝试使用 new BigInteger(number) 时,我得到 int 类型的文字超出范围。
  • 您是否对数字进行任何数字操作?
  • BigInteger i = new BigInteger("48565664968483514466");
  • @brso05 - 我需要将此数字转换为 BASE36 以生成条形码。

标签: java math numbers type-conversion base36


【解决方案1】:
BigInteger:

BigInteger 类分配尽可能多的内存来保存它被要求保存的所有数据位,并且还提供类似于 Java 的所有原始整数运算符和来自java.lang.Math. 的所有相关方法的操作

声明为

BigInteger bi1 =  new BigInteger("12345678900123");

【讨论】:

    【解决方案2】:
    BigInteger i = new BigInteger("48565664968483514466");
    

    【讨论】:

      【解决方案3】:

      当我尝试使用 new BigInteger(number) 时,我得到 int 类型的文字超出范围

      您要查找的语法是

      BigInteger n = new BigInteger("48565664968483514466");
      

      将数字文字作为String,因为原始整数文字无法容纳这么大的数字。

      【讨论】:

        【解决方案4】:

        以 36 为基数转换您的号码:

        BigInteger number = new BigInteger("48565664968483514466");
        String numberInBase36 = number.toString(36);
        System.out.println(numberInBase36);
        

        【讨论】:

          猜你喜欢
          • 2014-12-10
          • 1970-01-01
          • 2014-01-13
          • 2012-03-29
          • 2014-09-12
          • 2015-02-10
          • 1970-01-01
          • 1970-01-01
          • 2021-12-15
          相关资源
          最近更新 更多