java,float转string,结果错误问题

有一个float类型的数字ff,其值为9999999.99F;
当把它转换成字符串的时候,结果变成了1E07;

当然使用double类型是没有问题的;

试了以下几种方法:
1. float -> long -> double
采用先乘以一个数,再除以这个数的方法;
100、1000时没有效果,结果还是1E07;
10000时精度丢失了,结果变成了9999999.75

  1. BigDecimal
    BigDecimal db = new BigDecimal(ff);
    结果是1000000,只是没有科学计数法表示而已,还是不对

  2. 直接toStirng
    ((Float)(ff)).toString();
    结果是1E07;

  3. DecimalFormat
    DecimalFormat df = new DecimalFormat("0.00");
    System.out.println(df.format(ff));
    结果是10000000.00,还是不行

上面这几种方式,对于普通的float类型的值是基本是可以的;但是对于这里的ff都不行。
各位有什么好的招没有,希望能够处理ff,同时兼容其他的Float类型。
谢谢!

查看全部
Caoyuan_001
Caoyuan_001
2013/04/10 00:50
  • java
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

0个回复