2009-11-20 71 views
0

我有兩個列表,其中包含要比較的值。如果該值可以轉換爲浮點數,我想比較其他浮點數,我只是想將這些值作爲字符串進行比較。我怎樣才能做出區分來檢查一個值是否可以轉換爲浮動值?在python中比較字符串和浮點數

+3

什麼都試過?你目前有什麼代碼?這不是「做我的homework.com」。 – 2009-11-20 15:55:38

回答

4

最簡單的方法應該是隻是嘗試將它們轉換爲浮動,如果失敗,回落到一對字符串比較:

def floatstrcmp(left, right): 
    try: 
     return cmp(float(left), float(right)) 
    except ValueError: 
     return cmp(left, right) 
+2

比較花車時要小心!如果浮點數是計算結果,則浮點數本質上不準確,精確浮點數比較將失敗。 – whatnick 2009-11-20 16:44:02

+0

請注意,除了ValueError,'float(obj)'可以引發TypeError(例如None)和AttributeError(python類實例)。 – 2009-11-20 16:54:35