hive中浮点型数据计算精度丢失

举例:无限小数保留几位

说明:hive中round函数用于保留小数位,最后一位四舍五入

结果:double类型计算结果精度丢失

原因:round函数返回值是保留几位小数的double类型,虽然是保留几位,但浮点型的长度还在,所以二次计算时就会发生精度丢失

解决办法:将round函数返回值强转成decimal

扩展:hive函数值返回值是浮点型的,发生精度丢失时,可以采取类似办法

测试过程如下:

hive中浮点型数据计算精度丢失_第1张图片

hive中浮点型数据计算精度丢失_第2张图片

 

hive中浮点型数据计算精度丢失_第3张图片

你可能感兴趣的:(SQL,大数据,hive,hive,大数据,sql)