MyException - 我的异常网
当前位置:我的异常网» 编程 » 思忖使用大数值

思忖使用大数值

www.MyException.Cn  网友分享于:2013-02-19  浏览:2次
考虑使用大数值

如果连long类型也无法满足需求,如果需要高精度的浮点数,那么可以考虑使用java,math包里的两个有用的类:BigInteger和BigDecimal,它们可以包含任意长度数字序列的数值。

利用BigInteger表示一个超大的数值(超出long类型能够表示的范围):

		BigInteger big = new BigInteger("9999999999999999999999");

 因为float和double类型可能会出现精度损失问题,所以可以用BigDecimal来代替。

	BigDecimal bigD = new BigDecimal("1.0");

 

BigInteger和BigDecimal的运算方法(因为不能对运算符进行重载,所以只能用方法来实现)

	BigInteger one = BigInteger.valueOf(1);
		BigInteger two = BigInteger.valueOf(2);
		BigInteger add = one.add(two);  //  1 + 2
		BigInteger subtract = one.subtract(two); //  1 - 2
		BigInteger multiply = one.multiply(two);  // 1 * 2
		BigInteger divide = one.divide(two);  // 1 / 2
		BigInteger mod = one.mod(two); // 1 % 2
		// BigDecimal除了没有取模操作外,其余都有。

 

不同于C++,java不能重载+,-,*,/等运算符。虽然Java语言设计者确实对字符串的连接重载了+运算符,但没有重载其它运算符。 也没有给Java程序员重载其它运算符的权利。

 

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有