
存储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什么类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)