public static void main(String[] args)
{
float f = 111111111111.1111f;
System.out.println(f);
}为什么上面这个打印出:1.11111111E11,而不打印成:111111111111.1111?
如何才能打印成:111111111111.1111?
谢谢

解决方案 »

  1.   

    float为单精符点小数 只可以精确到小数后八位
    double为双精点小数 可 以精确到小数后16位
    float f = 111111111111.1111f; 
    你的最后一个F是什么意思呢?
      

  2.   

    float为单精符点小数 只可以精确到小数后八位 
    double为双精点小数 可 以精确到小数后16位 
      

  3.   

    float为单精符点小数 只可以精确到小数后八位 
    double为双精点小数 可 以精确到小数后16位 
    JAVA就是这么规定的,
    超过就只能用科学计数法表示了!
      

  4.   

    float为单精符点小数 只可以精确到小数后八位 
    double为双精点小数 可以精确到小数后16位 想实现你要的精度可以用BigDecimal实现。
      

  5.   

    BigDecimal ff=new BigDecimal("111111111111.1111");
    System.out.println(ff);
    这样就可以实现
      

  6.   

    import java.math.BigDecimal;
    public class Test1 { /**
     * @param args
     */
    public static void main(String[] args) 

    BigDecimal num=new BigDecimal("111111111111.1111"); 
    System.out.println(num); 
    } }
      

  7.   

    正如8楼的兄弟所说,使用BigDecimal来处理大数据。