`

让Double类型完整显示,不用科学计数法显示E

阅读更多

http://www.meiriyouke.net/?p=260

 

今天做项目时,需要用到Excel批量导入手机号码,使用POI在读取Excel文件时,手机号码该列被认为是Double类型,插入到数据库时(数据库是varchar型),用了科学计数法表示,如:1.397545871E10,很显然,这不是我想要的。

 

起初把它转为BigDecimal型再转为String型以为解决问题,但是在做大批量导入测试时,当手机号码以10结尾,如:13975458710,会出现如:1.397545871E+10的问题,虽然通过多转换几次,可以解决问题,但总觉得不是最好的方法。

 

在网上查了相关资料,终于发现有简单的完美解决方案,代码如下:

 

//  DecimalFormat df = new DecimalFormat("0.##"); // ##表示2位小数
  DecimalFormat df = new DecimalFormat("0"); 
  Double d = new Double("1.397545871E10");
  System.out.println(df.format(d));

 

分享到:
评论
3 楼 smallplum 2013-11-15  
letmedown 写道
Double d = new Double("1.397545871E10"); 
  System.out.println(d.longValue()); 

把Double强转成long值,可以吗?

本例中的手机号码是可以的,也更方便
但是数字超过long长度的情况,会导致结果不正确
还有就是保留小数点的需求了
2 楼 letmedown 2013-11-14  
Double d = new Double("1.397545871E10"); 
  System.out.println(d.longValue()); 

把Double强转成long值,可以吗?
1 楼 Jong88 2012-06-12  
多谢

相关推荐

Global site tag (gtag.js) - Google Analytics