2015-08-15 43 views
0

從MySQL拉2個十進制值,並試圖if語句用一個非常簡單的拉。 IsNumeric確認這些值都是數字。如果我使用minval=19.99而不是從數據庫中提取它的作品。比較數字從MySQL使用if語句

用於檢索minval的代碼看起來是這樣的:

Set rscontrol = db.Execute("select * from websitecontrol ") 
minval = FormatNumber(rscontrol("minordervalue")) 
+0

檢查從數據庫中拉出的值的類型('TypeName(minval)')。很可能你會比較兩個字符串,或者一個字符串與實際數字進行比較。用'IsNumeric'檢查在這裏並沒有真正的幫助,因爲它評估表達式是否可以被評估爲數字,對於只包含數字的字符串也是如此。如需更多幫助:顯示您的代碼。 –

+0

這兩個值在MySQL中都以十進制(19,2)的形式存儲。 Typename將小計顯示爲double,我認爲這對數字是正確的,但minval顯示爲字符串,所以我猜這是我的問題,你能告訴代碼它是數字嗎? – user3417410

回答

0

FormatNumber是一個用於格式化用於顯示的值的函數。它返回一個格式化的字符串。

>>>n = 1.25 
>>>WScript.Echo TypeName(n) 
Double 
>>>WScript.Echo TypeName(FormatNumber(n)) 
String

決不除非結果是用於顯示使用格式化功能

變化

minval = FormatNumber(rscontrol("minordervalue")) 

minval = rscontrol("minordervalue") 

如果仍然沒有幫助,您可以使用CDbl函數值強制雙。

minval = CDbl(rscontrol("minordervalue")) 

請注意,該功能需要在您的系統區域設置中配置的小數點。

+0

set rscontrol = db.execute(「select * from websitecontrol」) minval = formatnumber(rscontrol(「minordervalue」)) – user3417410

+1

@ user3417410查看更新後的答案。另外,請在將來的問題中提供這類信息。這次我冒昧地爲你做了。 –