请教String 转换成float的一个问题

hnnxzhoujia 2009-07-24 11:13:05
String a = "31.4530";
Float.parseFloat(a);
System.out.println(a);


a的值为31.453后面的0不见了,请教下这种情况该怎么处理下
...全文
343 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenzhehui 2009-07-29
  • 打赏
  • 举报
回复
我测试过,结果还是发现BigDecimal比较好,可是真的可能是效率差了点。
开始的时候我觉得用printf可能会简单点,但是我用printf出来的结果竟然是不对的。。。
淡定的峰哥 2009-07-29
  • 打赏
  • 举报
回复
楼上的并不能解决根本问题
用DecimalFormat 可以对double数据进行格式化
double d1 = 123.34634;
DecimalFormat df = new DecimalFormat( "##0.00000" );
DecimalFormat df1 = new DecimalFormat( "##0.00" );
String str=df.format( d1 );
String str1=df1.format( d1 );
System.out.println(str);
System.out.println(str1);
用这种格式化还能进行四舍无入
不过你首先要
double d2 = Double.parseDouble("1234.345");
slacrey 2009-07-29
  • 打赏
  • 举报
回复
我用的是jdk6 输出和lz一样啊
等待逆袭 2009-07-29
  • 打赏
  • 举报
回复
非要用float,用double就行了吧!!
sd01397055 2009-07-28
  • 打赏
  • 举报
回复
学习
zl3450341 2009-07-28
  • 打赏
  • 举报
回复
不知道原因
帮顶
andycpp 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 linhui9010 的回复:]
我怎么是31.4530了
  估计你要用的版本不匹配 把Eclipse换成1.5版本的
    lz 怎么把沙发坐了了~~~~
[/Quote]

這哥们的Eclipse是祖上传下来的吧,哈哈哈~~~~
随风醉舞 2009-07-28
  • 打赏
  • 举报
回复
估計是要insert表中,直接輸出的話,沒必要轉換!
Miracle1216 2009-07-28
  • 打赏
  • 举报
回复
直接打印不就行了么,为什么还要转。
如果是用于运算,有没有最后的0结果不是一样么?
linhui9010 2009-07-28
  • 打赏
  • 举报
回复
我怎么是31.4530了
估计你要用的版本不匹配 把Eclipse换成1.5版本的
lz 怎么把沙发坐了了~~~~
bigbug9002 2009-07-28
  • 打赏
  • 举报
回复
BigDecimal是用效率换精度.
彷徨的蜗牛 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hqq592440660 的回复:]
这是因为float的精度不高,这种情况下,我建议你用

String s = "31.4530";
BigDecimal  b = new BigDecimal(s);
System.out.println(b);


[/Quote]
顶上
yanliang_xt 2009-07-28
  • 打赏
  • 举报
回复
float的精度为6位?
qiubojuncode 2009-07-28
  • 打赏
  • 举报
回复
楼主的开发环境有关,我在 myeclipse中调试没有一点问题.不过没有白来这里,至少学了点BigDecimal,呵呵
aa870816 2009-07-25
  • 打赏
  • 举报
回复
我用的MyEclipse做的,答案后面有零的啊~~~
die_angle 2009-07-25
  • 打赏
  • 举报
回复
但是我打印出来的更是糟糕,
String a = "31.4530002";Float.parseFloat(a);
System.out.println(a);
但是我打印出来的是和楼方一样的31.453
nayiye 2009-07-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunjzb 的回复:]
不知lz是用的哪种工具编译的,我用的是MyEclipse
    运行后,结果为:31.4530
    字符串已成功的转换为了浮点型数据类型,
      浮点型数据类型的大小为32位,已足够大了,这个数是能够正常显示的   
[/Quote]
我觉得也是够用的,应该可以显示
你查查是不是其他什么版本有问题吧
hwhack 2009-07-25
  • 打赏
  • 举报
回复
BigDecimal 呵呵,学习了。
pengranxiang 2009-07-25
  • 打赏
  • 举报
回复
BigDecimal 很好用,学习了。
g9956 2009-07-25
  • 打赏
  • 举报
回复
println默认调用Object.toString()方法,直接打印不就得了!
加载更多回复(13)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧