如何使用float数据类型在Java中获得1或2个小数位

时间:2015-01-15 08:58:37

标签: java decimal

浮点数据类型在获取1或2个小数位时遇到问题..

但如果你看代码似乎对我好,但输出是不同的..我不想转换成字符串但是co' z我需要在打印之前做一些别的事情..

出于测试目的,我从字面上做了这个。有一些变量和变通方法只是为了简化一切。它假设以12.8结束,但它产生12.8000001,这就是为什么它会跳过我的测试..

float oh=11.0f;
    int retval=1;
      while (oh<=12.8)
        {
        //System.out.printf("%-11s",dec_format.format(oh)+'K');
     System.out.println(oh);
        oh=oh + 0.3f;
     }

输出是: 11.0 11.3 11.6 11.900001 12.200001 12.500001

它应该以12.8结束,为什么...... 00001 ??

1 个答案:

答案 0 :(得分:0)

System.out.printf("%2.3f", 2.887);

打印2.887

System.out.printf("%2.2f", 2.887);

打印2.89

System.out.printf("%2.1f", 2.887);

打印2.9