我正在尝试将具有可变十进制的字符串字段转换为 double 。我遇到的问题是因为小数是可变的,可以是以下任何一种:
359.879999
35.8799999
3.59879999
(将小数点移动到任何你想要的位置......但字段的长度始终为 9)
我试图做:
cast(RECURR as float) as RECURR
但这只是返回:
359.880004882813
我试过了:
cast(RECURR as decimal) as RECURR
然后返回:
360
最佳答案
试试怎么样:
select cast(recurr as decimal(19, 9))
这应该适用于小数位潜伏的任何地方。
请注意,未使用的小数位将为零。
关于sql - Hive 将字符串转换为浮点十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49945389/