java.text.DecimalFormat formater = new java.text.DecimalFormat("########");
        String str=formater.format(1800.000001);
        System.out.println(str);

解决方案 »

  1.   

    float f1=Float.parseFloat("0.18")*10000;
    int t=(int)(f1*1000);
      

  2.   

    晕啊,大哥们想周全的好吗,不要随便就写出来了,风云,很感谢你写了两个方法,但没一个对的,尤其是最后一个,什么意思嘛,都扩大1000倍了,
    java.text.DecimalFormat formater = new java.text.DecimalFormat("########");
            String str=formater.format(1800.000001);
            System.out.println(str);
    也是不行的,那样只会取整数部分,如果值是1800.1,难道你因为那只是1角钱就不要了吗?
      

  3.   

    由于float精度不够,现用double来解析字符串,再强转成float
    double d = Double.parseDouble("0.18")*10000;
    float f = (float)d;
      

  4.   

    其实风云用的方法也是对的,一位钱只要精确到小数后两位,这样写就可以了吧
    java.text.DecimalFormat formater = new java.text.DecimalFormat("####################.##");
    String str=formater.format(Float.parseFloat("0.18")*10000);
    System.out.println(str);
    str=formater.format(Float.parseFloat("0.180001")*10000);
    System.out.println(str);