2017-10-16 3 views
0

ハイブで科学的表記法の数値をDecimalにキャストしたいが、間違った出力が出ている。私が間違っているところ..キャストハイブの科学的数値から小数点へ

以下はテストするための私のクエリです。

select cast(-1.36666E2 as decimal(6,1)) 

私は出力が-1.36666であることを期待しています。しかし、私は得た-136.7

+0

出力が正しいです。 -1.36666を期待したら、E2を調整してください – Valli

+0

私の精度が間違っているかもしれません。トリミングなしには何か方法はありますか? –

+0

どちらが間違っていますか? -1.36666E2の値は-136.66 – Valli

答えて

1

DECIMAL(精度、スケール)はデータ型です。

精度は数値の桁数です。 Scaleは、数値の小数点以下の桁数です。例えば

は、番号136.7は4の精度と1 あなたが1.36666を持っているのであれば、精度が6のスケールと

select cast(-1.36666E2 as decimal(6,3)) 

-1.36666E2 5

のスケール-1.36666×10れる有します^ 2。それは-136.666を返すでしょう。入力に対して-1.36666を取得しません-1.36666E2

関連する問題