为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

largeQ 2019-03-29 19:15:56
有一个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 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

用String.valueOf(floatValue);


查看完整回答
反对 回复 2019-04-28
?
莫回无

TA贡献1865条经验 获得超7个赞

超出精度了 用double型


查看完整回答
反对 回复 2019-04-28
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

float只能表示7位有效数字 ,这个数字不能在用这个类型了,支持1楼


查看完整回答
反对 回复 2019-04-28
?
慕斯王

TA贡献1864条经验 获得超2个赞

BigDecimal最适合你


查看完整回答
反对 回复 2019-04-28
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

DecimalFormat df = new DecimalFormat("0.00");
String newff = df.format(ff);

你写的有问题,应该在 DecimalFormat设置精度后,再格式化


查看完整回答
反对 回复 2019-04-28
  • 6 回答
  • 0 关注
  • 1389 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号