举例:无限小数保留几位
说明:hive中round函数用于保留小数位,最后一位四舍五入
结果:double类型计算结果精度丢失
原因:round函数返回值是保留几位小数的double类型,虽然是保留几位,但浮点型的长度还在,所以二次计算时就会发生精度丢失
解决办法:将round函数返回值强转成decimal
扩展:hive函数值返回值是浮点型的,发生精度丢失时,可以采取类似办法
测试过程如下:
举例:无限小数保留几位
说明:hive中round函数用于保留小数位,最后一位四舍五入
结果:double类型计算结果精度丢失
原因:round函数返回值是保留几位小数的double类型,虽然是保留几位,但浮点型的长度还在,所以二次计算时就会发生精度丢失
解决办法:将round函数返回值强转成decimal
扩展:hive函数值返回值是浮点型的,发生精度丢失时,可以采取类似办法
测试过程如下:
浮点数在计算机中表示,总长度是64位,其中最高位是符号位,后面的11位是指数位,最后的52位是小数位,也就是有效数字部
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M