分享

java中的double精度,sqoop从oracle导出到hive

bob007 发表于 2016-1-19 18:06:56 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 9908
利用sqoop默认的从oracle数据库到处的数据表,如果其中的数据精度大于15位,而导入的表有些字段默认的是double类型,结果导致大于16的数导入到了hive中,查询时只有15位的精度,悲哀啊,切记。

[mw_shl_code=bash,true]public class HelloWorld {

       
          public static void main(String args[]){
        // double dou = 9813113054842628;
                String s = "9813113054842628";
                System.out.println(Double.valueOf(s));
               
                String s1 = "9813113054842627";
                System.out.println(Double.valueOf(s1));
     
                 
          }
}
[/mw_shl_code]



输出结果
9.813113054842628E15

9.813113054842628E15


原因是oracle的Number精度大于java中的double类型。








没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条