java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。表5.7中列出了BigDecimal类的主要构造器和方法。
构造描述:
BigDecimal(int) 创建一个具有参数所指定整数值的对象。
BigDecimal(double) 创建一个具有参数所指定双精度值的对象。
BigDecimal(long) 创建一个具有参数所指定长整数值的对象。
BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。
方法描述:
add(BigDecimal) BigDecimal对象中的值相加,然后返回这个对象。
subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象。
multiply(BigDecimal) BigDecimal对象中的值相乘,然后返回这个对象。
divide(BigDecimal) BigDecimal对象中的值相除,然后返回这个对象。
toString() 将BigDecimal对象的数值转换成字符串。
doubleValue() 将BigDecimal对象中的值以双精度数返回。
floatValue() 将BigDecimal对象中的值以单精度数返回。
longValue() 将BigDecimal对象中的值以长整数返回。
intValue() 将BigDecimal对象中的值以整数返回。
这是一个实例:
float fpkz = pk_z;
String spkz = ""+fpkz;
fpkz = Float.parseFloat(spkz);
BigDecimal b0 = new BigDecimal(21);
BigDecimal b1 = new BigDecimal(Float.toString(fpkz));
BigDecimal b2 = b1.divide(b0, 1, BigDecimal.ROUND_HALF_UP);
BigDecimal fpkzbigRate = new BigDecimal(100); //创建一个BigDecimal对象
BigDecimal fpkzbigReslut = new BigDecimal(0.0);//对象bigReslut的值要为0.0
fpkzbigReslut = b2.multiply(fpkzbigRate);//BigDecimal对象中的值相乘,然后返回这个值
spkz = fpkzbigReslut.toString();
fpkz = fpkzbigReslut.floatValue();
具体参考:http://www.oschina.net/home/apidoc?api=javase-6-doc-api-zh_CN