2013-09-23 106 views
0

我想使用一個枚舉,並要瘋了試圖從中獲得正確的價值。Vb枚舉不返回正確的值

Enum DiscountRates As Long 
    x = 0.05 
    y = 0.1 
    z = 0.15 
End Enum 

所以,如果我做

MessageBox.Show(DiscountRates.x) 

我想我還是會回到0.05或我就能用它來分配一個值....如果我把它打印出來這將只打印0

我本來它作爲一個雙,但VB不會讓它被宣佈爲一個

+1

有趣的是實際編譯和運行,因爲'0.05'肯定不是一個'Long'。它必須是隱含的四捨五入/截斷? –

+1

也許Option Strict設置爲關閉? –

回答

3

枚舉只支持整數。你需要求助於其他選項,如:

Const x As Single = 0.05 

看一看:https://stackoverflow.com/a/655055/290343

+0

它最初被宣佈爲雙精度型,但它表示枚舉必須聲明爲整型 – ed209

+0

對不起,您對。你不能用'Enum'來完成。改用consts。看到這個:http://stackoverflow.com/a/655055/290343。 我編輯了我的答案。 –

+0

或者,如果它總是百分比值(甚至是百分點),則可以用'x = 5'' y = 10'和'z = 15'來聲明'Enum DiscountRatesPercent'。 –