java科学计数法问题_java 解决科学计数法问题

问题:当java从excel获取数据后,会出现科学计数法,比如0.0004变成4.0E-4,5000变成5E+3问题.

解决:1:当是5E+3问题

这个很好解决:

1).判断是否是科学计数法

String str="5E+3";

Pattern pattern = Pattern.compile("(-?\\d+\\.?\\d*)[Ee]{1}[\\+-]?[0-9]*");

boolean isMache=pattern.matcher(String .trim()).matches();//判断是否是科学计数法 true是科学计数法,false不是科学计数法

2) .转化成带0正数存到数据库即可

DecimalFormat ds = new DecimalFormat("0");

cell= ds.format(Double.parseDouble(cell.trim())).trim();

2.当是4.0E-4问题

负数上边方法并不能实现,所以用BigDecimal实现

1).转成BigDecimal

String str="4.0E-4";

str=new BigDecimal(str.trim()).toString();

2).最后会出现一个0,比如0.00040,所以要把0去掉(如果你感觉没关系也可以不用管)

String lastOneNum = str.substring(str.length() - 1);//获取小数最后一位0

去除最后一个多余0

str= str.length() > 1 && cell.contains(".") && lastOneNum.equalsIgnoreCase("0") ? str.substring(0, str.length() - 1):str;//去除小数最后一位0

结语:有问题可以指正 ,有更好的方法也可以留言,谢谢

版权声明:本文为博主原创文章,转载请附上博文链接!

标签:trim,java,String,计数法,cell,str,科学,5E

来源: https://blog.csdn.net/qq_29379559/article/details/100574259

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值