Hive将字符串转换为浮动小数

时间:2018-04-20 15:46:42

标签: sql casting hive

我正在尝试将带有变量decimal的字符串字段转换为double。我遇到的问题是因为小数是可变的,可以是以下任何一种:

359.879999
35.8799999
3.59879999

(在任何地方移动小数......但字段的长度始终为9)

我试过这样做:

cast(RECURR as float) as RECURR

但这只是回归:

359.880004882813

我试过了:

cast(RECURR as decimal) as RECURR

然后返回:

360

1 个答案:

答案 0 :(得分:3)

尝试怎么样:

select cast(recurr as decimal(19, 9))

这适用于小数点潜伏的任何地方。

请注意,未使用的小数位将为零。