读书人

含E的科学计数法格式转换有关问题

发布时间: 2012-09-02 21:00:34 作者: rapoo

含E的科学计数法格式转换问题

项目中碰到数值采用科学计数法表示,数值是从excel解析得来的,科学计数法在excel里应该很常见。我的问题是解析出数值,我要对其进行校验,校验其是否为数值,我使用了java的正则表达式,非科学计数法的数值表示是没问题的,但就是采用了科学计数法的数值无法校验通过,

一、BigDecimal 解决办法:


??BigDecimal bg=new BigDecimal("3.456785E-8");
??System.out.println(bg.toPlainString());

?

二、DecimalFormat 解决办法:

??DecimalFormat f = new DecimalFormat("###.######");
??System.out.println( f.format(1.5E-05) );

?

?

有时候应该还会反过来,将数值转换成科学计数法:

?DecimalFormat? f = new DecimalFormat("000.0E00");
??System.out.println( f.format(0.000015) );

上面的解决办法都没考虑国际化的问题。

?

转自:http://iambrent.blog.163.com/blog/static/68288496201073184414431/

读书人网 >编程

热点推荐