当前位置: 首页 > 面试题库 >

我可以使用哪种变量类型在Java中保存大量数字(超过30个数字)?

艾令雪
2023-03-14
问题内容

我可以在Java中使用很大的变量类型来存储大量数字(最多40位)吗?

long的最大值是9223372036854775807,它是19位数字-不够大。

我正在尝试创建一个可以处理大数的计算器,因为当今大多数时候只能容纳不足的10位左右的数字,并且我想使用大得多的数字进行准确的计算

编辑

感谢您的回答。我可以使用BigInteger大整数,唯一的限制是计算机的内存(应该足够)。对于小数,我将使用float@WebDaldo建议的^
e,或BigDecimal(类似于BigInteger)使用@kocko的建议。


问题答案:

您可以使用BigInteger类。

BigInteger bi1 = new BigInteger("637824629384623845238423545642384"); 
BigInteger bi2 = new BigInteger("3039768898793547264523745379249934");

BigInteger bigSum = bi1.add(bi2);

BigInteger bigProduct = bi1.multiply(bi2);

System.out.println("Sum : " + bigSum);
System.out.println("Product : " + bigProduct);

输出:

总和:3677593528178171109762168924892318

产品:1938839471287900434078965247064711159607977007048190357000119602656

我应该提到BigDecimal,与
double
相比,它对于数量的计算非常有用。

BigDecimal bd = new BigDecimal("123234545.4767");
BigDecimal displayVal = bd.setScale(2, RoundingMode.HALF_EVEN);

NumberFormat usdFormat = NumberFormat.getCurrencyInstance(Locale.US);        
System.out.println(usdFormat.format(displayVal.doubleValue()));

输出:

$ 123,234,545.48



 类似资料:
  • 我需要创建一个类,它可以在变量中存储、或类型的值。 我想声明一个变量,因为只有一个特定类型的对象将用于初始化类的实例。为每种类型声明一个变量将浪费资源,因为只会使用一个。 考虑这一点: 然后执行: 理想情况下,在控制台中获得正确的输出。 我研究了仿制药和其他东西,但找不到我需要的东西。你能告诉我我在找什么吗? < code>Container中的< code>getObject()可以处理带有<

  • 问题内容: 我可以在表达式中使用原始类型文字或类型变量吗? 我遇到编译错误。有什么办法可以避免这些错误,并在表达式中使用原始类型文字/类型变量? 基本上,我想向我保证,我永远也做不到。 问题答案: 不,因为 类型擦除 。的实例实际上并不知道是什么。 您需要有个的实例。然后,您可以使用该方法。一种方法是在构造函数中指定它: 对于第二个,问题是第一个操作数,而不是第二个。原始值本身不是的实例;盒装版本

  • 本文向大家介绍哪种类型的记录可以保存在区块链中?相关面试题,主要包含被问及哪种类型的记录可以保存在区块链中?时的应答技巧和注意事项,需要的朋友参考一下 回答:我们可以将任何记录放入区块链中。下面列出了一些常见的记录类型: 事务处理 身份管理 与组织有关的活动 管理活动 文献资料 医疗交易记录

  • 问题内容: 如何在Java中以两位数字格式存储整数?我可以设置 并打印为?另外,我要说,不仅打印,还应该将其值打印为。 问题答案: 我认为这是您要寻找的: 或者,更简单地说: 一个int仅存储一个数量,而01和1表示相同的数量,因此它们以相同的方式存储。 DecimalFormat构建一个以特定格式表示数量的字符串。

  • 如何保存flat16(https://en.wikipedia.org/wiki/Half-precision_floating-point_format)最大数量在flat32(https://en.wikipedia.org/wiki/Single-precision_floating-point_format)格式? 我想有一个可以将0x7bff转换为65504的函数。0x7bff是可以用浮

  • 问题内容: 我将如何使用Java中的超大型数进行计算? 我已经尝试过了,但是最大值达到了9223372036854754775807,当使用整数时,它不能保存足够的数字,因此对于我所需要的来说不够准确。 有没有办法解决? 问题答案: 你可以将类用于整数和具有十进制数字的数字。这两个类都在包中定义。 例: