如果要进行非常大的数计算或者高精度浮点数的计算,可以使用java.math包中的BigInteger类。它们都是不可变的。
注意是任意大小与任意精度的数。
在代码开头一定要 import java.math.*;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import java.math.*; public class javaLang { public static void main(String[] args){ BigInteger m=new BigInteger("425287628746279647233986234525425423535345363534532463563463554"); BigInteger n=new BigInteger("1451454524154154278278278272278272727278272121541213"); BigInteger x=m.multiply(n); System.out.println(x); System.out.println("*********************************************"); System.out.println(factorial(100)); } public static BigInteger factorial(long n){ BigInteger result=BigInteger.ONE; for(int i=1;i<=n;i++){ result=result.multiply(new BigInteger(i+"")); } return result; } } |
结果:
m*n=6172856528105800233049127757055209998353469602134
76104253756703980080448006260985623488512735497261974037104350466897480350834451002
*********************************************
100!=933262154439441526816992388562667004907159682643816214685
9296389521759999322991560894146397615651828625369792082722375825
1185210916864000000000000000000000000