在任何語言中,資料的精度問題都會存在。比如在idl中,就存在以下現象。
idl> a = 2.3 + 0.08
idl> print, a
2.38000
idl> print, a eq 2.38
0
idl> a = 2.38
idl> b = 2.38d
idl> print, a eq b
0
檢視了一些網上的搜尋結果,大多數人的解決方法都是通過判斷兩者之差是否小於乙個極小值,從而判斷是否相等。
其實在idl裡,可以通過把雙精度變數轉換成字串型別,然後判斷。
;這裡的變數均為浮點型
idl> a = 2.3 + 0.08
idl> print, a eq 2.38
0idl> print, string(a) eq string(2.38)
1
;對於雙精度
idl> a = 2.3 + 0.08d
idl> help, a
a double = 2.3800000
idl> print, string(a) eq string(2.38)
0idl> print, string(a) eq string(2.38d)
1
判斷子串行 雙指標)
給定字串 s 和 t 判斷 s 是否為 t 的子串行。你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長 長度 500,000 而 s 是個短字串 長度 100 字串的乙個子串行是原始字串刪除一些 也可以不刪除 字元而不改變剩餘字元相對位置形成的新字串。例如,ace 是 abcde ...
離散題目11 判斷雙射
time limit 1000ms memory limit 65536kb submit statistic problem description 給定乙個數學函式寫乙個程式來確定該函式是否是雙射的 input 多組輸入。第一行輸入三個整數n,m,k,分別表示集合a中的元素個數,集合b中的元素個...
用雙指標,判斷子串行
歷次做演算法題目,今天耗時最短。題目原鏈結leetcode 給定字串 s 和 t 判斷 s 是否為 t 的子串行。你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長 長度 500 000 而 s 是個短字串 長度 100 字串的乙個子串行是原始字串刪除一些 也可以不刪除 字元而不改變...
判斷鍊錶是否有環 雙指標法
判斷乙個單向鍊錶是否有環 思路 設定雙指標,一快一慢,若有環兩個指標一定相遇 快指標pf每次走一步,以便於遍歷所有結點 慢指標ps每次走兩步,目的是遍歷環中的每乙個結點 include using namespace std 鍊錶結點 typedef struct listnode listnode...
雙指標法的實踐 判斷回文鍊錶
一 題目 二 方案 確定陣列列表是否為回文很簡單,我們可以使用雙指標法來比較兩端的元素,並向中間移動。乙個指標從起點向中間移動,另乙個指標從終點向中間移動。這需要 o n 的時間,因為訪問每個元素的時間是 o 1 而有 n 個元素要訪問。然後,直接在鍊錶上操作並不簡單,因為不論是正向訪問還是反向訪問...