一、概述
在Java的开发过程中,我们使用的数值类型如果int,long,double等的长度已经够我们使用了,一般情况下是不会超出范围的,当时如果我们使用如double等的精度已经不够使用了,那么我们就需要一个更大的范围来使数据更加的精确(如高精度的仪器,天文仪器,医学仪器等)。这个时候我们可以使用java.math中的两个很有用的类:BigInteger, BigDecimal。
二、说明
BigInteger实现了任意精度的整数的运算。
BigDecimal实现了任意精度的浮点数的运算。
如下:
/**
* Description :高精度浮点树据的运算
* @param
* @return
* @exception
* @author :loulan
* */
@Test
public void bigDouble() {
String pi = "3.141592653589793238462643383279502884197169399375" +
"105820974944592307816406286208998628034825342117067982" +
"148086513282306647093844609550582231725359408128481117" +
"450284102701938521105559644622948954930381964428810975" +
"665933446128475648233786783165271201909145648566923460" +
"348610454326648213393607260249141273724587006606315588" +
"174881520920962829254091715364367892590360011330530548" +
"820466521384146951941511609433057270365759591953092186" +
"117381932611793105118548074462379962749567351885752724" +
"891227938183011949129833673362440656643086021394946395" +
"224737190702179860943702770539217176293176752384674818" +
"467669405132000568127145263560827785771342757789609173" +
"637178721468440901224953430146549585371050792279689258" +
"923542019956112129021960864034418159813629774771309960" +
"518707211349999998372978049951059731732816096318595024" +
"459455346908302642522308253344685035261931188171010003" +
"137838752886587533208381420617177669147303598253490428" +
"755468731159562863882353787593751957781857780532171226" +
"8066130019278766111959092164201989";
double pi1 = Double.valueOf(pi);
System.out.println(pi1+1); // 加1运算 4.141592653589793
BigDecimal pi2 = new BigDecimal(pi);
System.out.println(pi2.add(new BigDecimal(1))); // 加1运算,这里长度如上面一样100位,这里就不一一写出来了
}