IDL 判斷雙精度變數是否EQ

2022-10-11 19:00:08 字數 758 閱讀 8722

在任何語言中,資料的精度問題都會存在。比如在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 個元素要訪問。然後,直接在鍊錶上操作並不簡單,因為不論是正向訪問還是反向訪問...