我想在Hive中将带有科学记数法的数字转换为Decimal,但是输出错误了。我做错了...
以下是我要测试的查询。
select cast(-1.36666E2 as decimal(6,1))
我希望输出 -1.36666 。但我得到了 -136.7
答案 0 :(得分:1)
DECIMAL(precision,scale)是数据类型。
精确度是数字中的位数。 Scale是数字中小数点右边的位数。
例如,数字136.7的精度为4,比例为1 因此,如果您有1.36666,则精度为6,刻度为5
select cast(-1.36666E2 as decimal(6,3))
-1.36666E2是-1.36666 * 10 ^ 2。那将返回-136.666。对于输入-1.36666E2
,您将不会得到-1.36666