錯誤記錄 hive臨時表小於1的小數與零比較

2021-09-01 00:20:48 字數 1144 閱讀 8449

在用真實資料測試之前寫過的一段**邏輯時,發現了乙個很神奇的錯誤,sql看著沒錯,但是判斷index_value>0的時候明明有4條資料大於零,但是查詢跑出的結果卻是2條,由於資料量太大不好驗證,所以寫了個demo來驗證。

public static void main(string args)
查詢結果為:

+---------+----------+

|indexcode|indexvalue|

+---------+----------+

| f005| 100|

| f005| 5|

+---------+----------+

考慮到可能是型別轉換出現了問題,因此修改**如下:

public static void main(string args)
執行結果為:

+---------+----------+

|indexcode|indexvalue|

+---------+----------+

| f005| 100|

| f005| 0.1|

| f005| 5|

| f005| 0.6|

+---------+----------+

修改**如下:

public static void main(string args)
執行結果為:

+---------+----------+

|indexcode|indexvalue|

+---------+----------+

| f005| 100|

| f005| 0.1|

| f005| 5|

| f005| 0.6|

+---------+----------+

在實際表中查詢時不會出現這樣的問題

具體的原因和機制有待深入的研究

程式設計錯誤記錄(1)

1,在程式裡大小寫有差別,但是編譯器不能報錯。如果一不小心把乙個變數搞混淆了,後果很嚴重。我曾在程式裡定義乙個變數,int k 大寫 使用的時候,又是用的小寫k。導致資料沒有正確讀到。這個小bug找了很久才發現 2,float k 1 5 除錯居然結果為0。float k 1.0 5.0 結果就是正...

簡單的錯誤記錄

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1.記錄最多8條錯誤記錄,對相同的錯誤記錄 即檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 檔案所在的目錄不同,檔名和行號相同也要合併 2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 如果檔名不同,而只是檔名的後...

模板鍊錶程式中的錯誤記錄

問題 1.const 物件 只能呼叫const 成員函式 bool getelem int count elemtype e declare template define linklist linklist const linklist lc lc is a const object length...