我有一個錯誤在VB.net If CurrencyHolder.Text > 0 And CurrencyHolder.Text < 10000 Then
轉換爲Double類型無效?
我使用的是Maskedinputbox 00000.00 當我執行我的代碼和Maskedinputbox是空的,我得到以下錯誤:
**盡我所能來翻譯它!!!:$) Signstreak的轉換。輸入double無效
我該如何解決這個問題?
我有一個錯誤在VB.net If CurrencyHolder.Text > 0 And CurrencyHolder.Text < 10000 Then
轉換爲Double類型無效?
我使用的是Maskedinputbox 00000.00 當我執行我的代碼和Maskedinputbox是空的,我得到以下錯誤:
**盡我所能來翻譯它!!!:$) Signstreak的轉換。輸入double無效
我該如何解決這個問題?
您可以使用val(): - 返回包含在字符串中的數字作爲適當類型的數字值。
If Val(CurrencyHolder.Text) > 0 AndAlso Val(CurrencyHolder.Text) < 1000 Then
'code
End If
警告
val()
只考慮.
檢查小數點分隔櫃面小數點終端用戶的lcoale風格比.
其他這是行不通的
使用Double.Parse
/Double.TryParse
或Decimal.Parse
/Decimal.TryParse
。對於貨幣Decimal
是正確的類型。
Dim currency as Decimal
Dim valid as Boolean = Decimal.TryParse(CurrencyHolder.Text, currency)
If valid AndAlso currency > 0 AndAlso currency < 10000 Then
' ... '
End If
https://msdn.microsoft.com/en-us/library/system.decimal.tryparse(v=vs.110).aspx
如果您當前的小數點分隔符是比你想支持一個(FE使用123,50€
但是你要分析是123.50$
值),可以使用解析超負荷不同方法。例如:
Dim valid As Boolean = Decimal.TryParse(CurrencyHolder.Text, NumberStyles.Currency, NumberFormatInfo.InvariantInfo, currency)
+1這應該是公認的答案,並且您已經正確地選出了Op應該使用小數日期類型 –
你好Wingedpanther,這個工程!但我不知道這是爲什麼起作用。你能解釋一下給我:)? – TheBlinderCoder
@TheBlinderCoder更新! –
但這會導致運行時錯誤,如果用戶輸入無法投射的字符 – 5uperdan