Maciej Los
Ну, используя Функция Val[^] это действительно плохая практика. Пожалуйста, перейдите по ссылке, чтобы узнать почему.
Я бы предложил использовать правильный способ преобразования текста в числа. Например:
ГЛ.:
CDbl()
, CLng()
, и т. д., см.: Функции Преобразования Типов[^]
VB.NET:
Двойной.Метод TryParse (String, NumberStyles, IFormatProvider, Double) (System)[^]
Двойной.Метод Синтаксического Анализа (String) (System)[^]
В псевдокоде:
Dim tot As Double, tmp As Double
On Error GoTo Err_Txt2Dbl
For Each obj As TextBox In Form1.Controls
If obj.Name Like "wwms*" Then
tmp = 0
'if conversion is possible, calculate total
tmp = CDbl(obj.Text)
tot += tmp
End If
Next
Exit_MySubroutine:
Exit Sub
Err_Txt2Dbl:
Select Case Err.Number
Case 6 'overflow
tmp = 0
Resume Next
End Select
Dim st As NumberStyles = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
Dim ci As CultureInfo = CultureInfo.CreateSpecificCulture("en-us")
Dim tot As Double = 0
Dim tmp As Double = 0
For Each obj As TextBox In Form1.Controls
If obj.Name.StartsWith("wwms") Then
tmp = 0
'if conversion is possible, calculate total
If Double.TryParse(control.Text, st, ci, tmp) Then
tot += tmp
End If
End If
Next
Для получения более подробной информации, пожалуйста, смотрите:
On Error Statement (Visual Basic)[
^]
Обработка ошибок в Visual Basic .NET[
^]