hive數字處理
- 在hive中,兩個字段作除法,如何取得想要的小數位數。 若是非科學計數法,好比1/3,沒有0,全部就不會存在科學計數法,因此若是想要取多少位,直接round(1/3,2)便可。 若是是科學計數法,好比9/1000000001,結果中0比較多,就會存在科學計數法,這時round(9/10000000001,3)確定是0,由於只取3位小數,四捨五入仍是0,只有當你取更多位的小數時,纔有可能不會四捨五入。還有有些數字即便你寫了round(1/3,2)*100,按道理是整數,可是求出來的結構有可能就是帶有小數的,這個地方很不解。 一個比較明確的位數輸出結果是以下結構:cast((1-t1.bad_num/t1.all_num) as decimal(10,4))*10000,這樣的必定就是整數了,並且強制轉換成decimal後,數據也會進行四捨五入。
歡迎關注本站公眾號,獲取更多信息