double d1=123.12;
d1-=100.00;
System.out.println(d1);运行结果是
23.120000000000005如何只要23.12?再例如如果结果是432.1234000000,只要432.1234

解决方案 »

  1.   

    看看下面两个类的文档
    java.text.NumberFormat;
    java.text.DecimalFormat;
      

  2.   

    Here is an example:   double d1=123.12;
      d1-=100.00;
      DecimalFormat nf = new DecimalFormat("0.00");
      System.out.println(nf.format(d1));   nf = new DecimalFormat("0.0000");
      System.out.println(nf.format(432.1234000000));The better way is:   BigDecimal b= new BigDecimal(123.12D);
      b.add(new BigDecimal(-100.00));
      System.out.println(b.doubleValue());
      

  3.   

    CSDN的文档里有这个东东,我已经使用了,感觉很爽.
      

  4.   

    huoyin(多情剑客) :我不是想要保留小数位,是要自动的将一长串0去掉!
      

  5.   

    所以你可以使用以下代码完成你的工作,BigDecimal类可以保证任意精度的算术运算,单纯使用double就会产生你的问题。BigDecimal b= new BigDecimal(123.12D);
      b.add(new BigDecimal(-100.00));
      System.out.println(b.doubleValue());
      

  6.   

    显示?
    API去看看 printf()
      

  7.   

    public class Multi {
        public static void main(String args[]) {
            float  i;
            float  k;
            float  sum;
            i = Float.parseFloat("2.00");
            k = Float.parseFloat("1.10");
            sum = i - k;
            System.out.println("sum"+sum);
        }}