本帖最后由 张俊迪 于 2013-5-29 23:53 编辑
java中的浮点数据类型float和double不能进行运算,因为他们算出来的数有可能与实际不符,不光是java这样,在其他很多语言中也出现这种问题,对于这个问题java提供了java.math.BigDecimal包通过BigDecimal这个类可以实现浮点数的加减乘除以及四舍五入,在这里我只说一个减法,其他的方法你可有上api文档中查看.
看我写的一个代码吧:
import java.math.BigDecimal;
public class Text4 {
public static void main(String[] args) {
// System.out.println((2.00-1.10));
double d1=2.00,d2=1.10;//用你的数
String s1=Double.toString(d1);//记住最好把这个数据类型转化为String类型,不只是double别的也一样
String s2=Double.toString(d2);
BigDecimal b1=new BigDecimal(s1);//将 BigDecimal 的字符串表示形式转换为 BigDecimal。用到构造函数BigDecimal(String val)
BigDecimal b2=new BigDecimal(s2);
double d=b1.subtract(b2).doubleValue();//这个地方的subtract方法就减法的意思,这可从api中查出,还有add(+)divide(/)multiply(*)算出的结果在转化//成原来数据类型就好了。
System.out.println(d);
}
}
其他的方法我就不说了,要是不明白我们还可以在讨论,看看Api应该能行,上面讲的很清楚 |