今天在使用impala查詢資料的時候,發現price欄位是string型別,不能進行sum計算,需要轉換格式。
第一種方法:由於price欄位中的數值是類似0.24這樣的小數,不能轉換成int型別,使用了cast()函式轉換成float型別,具體如cast(price as float)。但是和price對比發現轉換float型別後,會自動補上小數點後幾位,如果進行累加,也是積少成多,可能會不準確。
第二種方法:使用cast(price as double),對比以後發現double型別沒有自動補上小數點後幾位,最後進行累加的數值也基本上正確。
總結,在使用型別轉換的時候,要進行對比和驗證,因為雖然是小數點後幾位補數值,一條資料影響較小,如果很多條資料進行累加,差距變得很大,資料也會不準確。
資料型別 型別轉換
這樣的語句將報錯,因為char型別精度低於int型別,編譯器無法將其自動轉換,只能進行強制轉換 int x 65 char ch char x 舉例1 int age 19 char 女 char result age int 不可以自動轉換成char 精度損失 舉例2 int a 10 int b...
Objective C資料型別 資料型別轉換
資料型別 1.objective c資料型別可以分為 基本資料型別 物件資料型別和id型別。2.基本資料型別有 int float double和char型別。3.物件型別就是類或協議所宣告的指標型別,例如 nsautoreleasepool pool 其中,nsautoreleasepool是乙個...
資料型別轉換
資料型別轉換 public class typeconvert 一 容量小的資料型別自動轉換為容量大的資料型別 資料型別按容量大小排序為 byte,short,char int long float double byte,short,char之間不會互相轉換,他們三者在計算時首先回轉換為int型別...