在 Hive 中将科学数转换为小数

spa*_*ker 1 sql hive

我想在 Hive 中将具有科学记数法的数字转换为小数,但我得到了错误的输出。我做错的地方..

以下是我要测试的查询。

select cast(-1.36666E2 as decimal(6,1))
Run Code Online (Sandbox Code Playgroud)

我期望输出为-1.36666。但我得到了-136.7

Val*_*lli 5

DECIMAL(precision, scale) 是数据类型。

精度是数字中的位数。小数位数是数字中小数点右侧的位数。

例如,数字 136.7 的精度为 4,小数位数为 1 因此,如果您有 1.36666 ,则精度为 6,小数位数为 5

select cast(-1.36666E2 as decimal(6,3))
Run Code Online (Sandbox Code Playgroud)

-1.36666E2 是 -1.36666* 10^2。这将返回 -136.666。输入 -1.36666E2 不会得到 -1.36666