我试图将一个字符串转换成一个十进制数,它一直返回一个整数。输入和预期输出如下:
0 0 14400 144.00 -11800 -118.00 42400 424.00 60200 602.00 217400 2174.00 5000 50.00
我正在使用:
Cast(Trim(POLAMNT) as Decimal(10,2)) as POLICYAMNT
但它返回的值没有小数点。
uurity8g1#
Cast(Trim(POLAMNT) as Decimal) / pow(10,2) as POLICYAMNT
是实现我所需要的最快(最干净)的方法。
u7up0aaq2#
Hive正在创造正确类型的东西。无论打印结果是什么,都有利于删除 .00 . sql不是那么友好。因此,将结果转换回字符串:
.00
cast(cast(trim(POLAMNT) as decimal(10,2)) as string) as POLICYAMNT
这应该正好有两个小数位。编辑:我误解了这个问题。你似乎只是想:
cast(trim(POLAMNT) as decimal(10,2)) / 100
2条答案
按热度按时间uurity8g1#
是实现我所需要的最快(最干净)的方法。
u7up0aaq2#
Hive正在创造正确类型的东西。无论打印结果是什么,都有利于删除
.00
. sql不是那么友好。因此,将结果转换回字符串:这应该正好有两个小数位。
编辑:
我误解了这个问题。你似乎只是想: