有一个float类型的数字ff,其值为9999999.99F;当把它转换成字符串的时候,结果变成了1E07;当然使用double类型是没有问题的;试了以下几种方法:1. float -> long -> double采用先乘以一个数,再除以这个数的方法;100、1000时没有效果,结果还是1E07;10000时精度丢失了,结果变成了9999999.75BigDecimalBigDecimal db = new BigDecimal(ff);结果是1000000,只是没有科学计数法表示而已,还是不对直接toStirng((Float)(ff)).toString();结果是1E07;DecimalFormatDecimalFormat df = new DecimalFormat("0.00");System.out.println(df.format(ff));结果是10000000.00,还是不行上面这几种方式,对于普通的float类型的值是基本是可以的;但是对于这里的ff都不行。各位有什么好的招没有,希望能够处理ff,同时兼容其他的Float类型。谢谢!
6 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
DecimalFormat df = new DecimalFormat("0.00");
String newff = df.format(ff);你写的有问题,应该在 DecimalFormat设置精度后,再格式化
添加回答
举报
0/150
提交
取消
