String类型的小数转换成double时,丢失精度

wnj89510 2015-06-10 12:13:58
我从excel中取出里面的数据,是String类型的,但是数据中有小数,现在我想把它(String类型的小数,如1.2)转换成double类型的进行相加,但转换之后(使用Double.parseDouble(“1.2”)方法),就直接四舍五入变成了“1”,并不是我想要的double类型的“1.2”,请问这个问题怎么解决呢?急!
...全文
1602 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
boybaozi 2015-06-10
  • 打赏
  • 举报
回复
parseDouble应该是带小数位的啊
  • 打赏
  • 举报
回复
楼主的问题不太符合逻辑吧,正常情况下,如果想四舍五入的话都需要特殊处理的,你这样直接转换是不会丢失精度的啊。
liangtu 2015-06-10
  • 打赏
  • 举报
回复
用BigDecimal

BigDecimal b1 = new BigDecimal(para1);
BigDecimal b2 = new BigDecimal(para2);
return String.valueOf(b1.add(b2).doubleValue());
SUN丶XT 2015-06-10
  • 打赏
  • 举报
回复
检查一下,取出来时是否就是为1.2的String字符串,我怀疑可能取出来时为int,导致先变成整形了。
SUN丶XT 2015-06-10
  • 打赏
  • 举报
回复
String a = "1.666"; double b = Double.parseDouble(a); System.out.println(a); 我本地测试也是没有问题的,输出结果也是1.666
掉渣哥 2015-06-10
  • 打赏
  • 举报
回复
Double.parseDouble("1.2") 结果不会损失经度的
二十亩鱼 2015-06-10
  • 打赏
  • 举报
回复
先检查你的代码有无 问题,parseDouble方法无问题。
给你看看我本地的测试:

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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