1、float与double类型比较,因hive、java等IEEE(IEEE二进制浮点数算术标准)的系统,float 0.3实际存储数据略大于0.3,因此大于double0.3,hive存储浮点数数据建议使用double类型。
HIVE: select FLOAT(0.3)//0.30000001192092896 JAVA: public void floatTest(){ float a = 0.3f; //float :0.30000001192092896000 System.out.printf("float :%.20f\n",a); //double :0.30000000000000000000 System.out.printf("double :%.20f\n",0.3); //字面量0.3,默认为double类型,比较时把float类型转变为double类型,float后面补0,因此float 0.3>double 0.3 System.out.println("float>double:"+(a>0.3)); }
原文:https://www.cnblogs.com/csyusu/p/11049794.html