项目中碰到数值采用科学计数法表示,数值是从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) );
上面的解决办法都没考虑国际化的问题。