静态方法Float.parseFloat()就是把字符转成float型数值,如果不成功,会抛出异常。
对你的1、2两例,是因为取值的原因,第三例怎么会返回1.0.11111111,我试了一下,返回0.11111111。如果你要求很高的精度,用Double.parseDouble()。

解决方案 »

  1.   

    是的第三个我写错了。
    现在的情况是:一定要用float
    我想知道他的转换规则是什么。
    因为对于他的结果我没法知道他是按照什么原则来的。
    哪位指点一把,不甚感激。
      

  2.   

    所有数字在计算机里都是用二进制表示的(包括浮点数),所以float在转换过程中有精度损失,可以考虑用double代替,不过他的长度是float的一倍
      

  3.   

    因为是实际应用的一个特例,不能使用double,因此在不考虑double的情况下。好像不是“不可预期的”,他的结果始终是一定的。float确实有精度损失。只是我想知道他的损失总有点规律可寻。比如,按有效数字、按小数点后几位等等但是现在的情况是我不知道这个规律是什么。比如
    str为111.111111111111111时候float val = Float.parseFloat(value);结果是111.111115
    str为1.111111111111111时候float val = Float.parseFloat(value);结果是1.1111112你如何推断他的精确度标准?
      

  4.   

    float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用java.math.BigDecimal
    你可以先把你要表示的数转为String
    然后用new BigDecimal(string).floatValue();
    这样就得到float数的精确表示了