Jon*_*Lam 18 java biginteger bigdecimal
是否有一个非常大的变量类型我可以在Java中用来存储大量数字(最多四十位数)?
long最大值是9223372036854775807,这是19位数 - 不够大.
我正在尝试创建一个可以处理大数字的计算器,因为现在大多数只能保持不到10位左右的数字,而且我希望得到精确计算的数字更大的数字
编辑
谢谢你的回答.我可以BigInteger用于大整数,唯一的限制是计算机的内存(应该足够).对于小数,我将使用float^ e,如@WebDaldo建议,或者BigDecimal(类似于BigInteger),如@kocko建议的那样.
Saj*_*tta 28
您可以使用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);
Run Code Online (Sandbox Code Playgroud)
输出:
总和: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()));
Run Code Online (Sandbox Code Playgroud)
输出:
$ 123,234,545.48
| 归档时间: |
|
| 查看次数: |
56053 次 |
| 最近记录: |