考虑使用大数值
如果连long类型也无法满足需求,如果需要高精度的浮点数,那么可以考虑使用java,math包里的两个有用的类:BigInteger和BigDecimal,它们可以包含任意长度数字序列的数值。
利用BigInteger表示一个超大的数值(超出long类型能够表示的范围):
BigInteger one = BigInteger.valueOf(1);BigInteger two = BigInteger.valueOf(2);BigInteger add = one.add(two); // 1 + 2BigInteger subtract = one.subtract(two); // 1 - 2BigInteger multiply = one.multiply(two); // 1 * 2BigInteger divide = one.divide(two); // 1 / 2BigInteger mod = one.mod(two); // 1 % 2// BigDecimal除了没有取模操作外,其余都有。
?
不同于C++,java不能重载+,-,*,/等运算符。虽然Java语言设计者确实对字符串的连接重载了+运算符,但没有重载其它运算符。 也没有给Java程序员重载其它运算符的权利。
?