项目中碰到数值采用科学计数法表示,数值是从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) );
上面的解决办法都没考虑国际化的问题。
本文讨论了在Java中解析和校验科学计数法表示的数值,并提供了使用BigDecimal和DecimalFormat类进行处理的方法。同时,文章还介绍了如何将数值转换为科学计数法表示,以及这些操作在国际化环境下的注意事项。
3195

被折叠的 条评论
为什么被折叠?



