java如何存储巨大的数字比如100!

java如何存储巨大的数字比如100!,第1张

存储100的阶乘,这种超大数字,java 还是提供了一些类的比如

1: 使用BigInteger或者 BigDecimal

import javamathBigDecimal;

import javamathBigInteger;

// 测试类  

public class Demo {

public static void main(String[] args) {

BigDecimal s1 = jieCheng(100);//BigDecimal存100的阶乘还是没有问题的

BigInteger bi=s1toBigInteger();//BigInteger存100的阶乘也可以

Systemoutprintln(bi);

Systemoutprintln(s1);

}

public static BigDecimal jieCheng(int num) {

BigDecimal sum = new BigDecimal("1");

if (num < 0) {

throw new IllegalArgumentException("参数不能为负!");

}

for (int i = 1; i <= num; i++) {

sum =summultiply(new BigDecimal(i));//循环进行累乘

}

return sum;// 返回结果字符串

}

}

如果是BigDecimal都处理不了超大数字,  那么可以使用String来存储

String str ="123";//这种方式,是明文写入代码的,字符串长度不能太长

所以太长的文本应该写入字符串文本中 使用的时候使用IO进行读取

public class Test{

public static void main(String[] arg) {

String str1="230";

BigDecimal bd=new BigDecimal(str1);

Systemoutprintln(bd);

}

}

decimal在java中的用BigDecimal表示的。

BigDecimal:不可变的、任意精度的有符号十进制数。

BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。

如果为零或正数,则标度是小数点后的位数。

如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。

因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。

BigDecimal 类提供以下 *** 作:算术、标度 *** 作、舍入、比较、哈希算法和格式转换。

以上就是关于java如何存储巨大的数字比如100!全部的内容,包括:java如何存储巨大的数字比如100!、hibernate bigdecimal怎么转换string、decimal对应java什么类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9681039.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存