visual significa que numero net long funcion convertir convert cint cdbl vb.net string double try-catch

vb.net - significa - funcion cint visual basic



Convertir cadena a doble-VB (4)

¿Existe un método eficiente en VB para verificar si una cadena se puede convertir a doble?

Actualmente estoy haciendo esto al tratar de convertir la cadena a un doble y luego ver si se produce una excepción. Pero esto parece estar desacelerando mi aplicación.

Try '' if number then format it. current = CDbl(x) current = Math.Round(current, d) Return current Catch ex As System.InvalidCastException '' item is not a number, do not format... leave as a string Return x End Try


Código de ejemplo VB.NET

Dim A as String = "5.3" Dim B as Double B = CDbl(Val(A)) ''// Val do hard work ''// Get output MsgBox (B) ''// Output is 5,3 Without Val result is 53.0


Intente buscar en Double.TryParse () si está utilizando .NET 1.1 / 2.0 / 3.0 / 3.5 / 4.0 / 4.5


Las versiones internacionales:

Public Shared Function GetDouble(ByVal doublestring As String) As Double Dim retval As Double Dim sep As String = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator Double.TryParse(Replace(Replace(doublestring, ".", sep), ",", sep), retval) Return retval End Function '' NULLABLE VERSION: Public Shared Function GetDoubleNullable(ByVal doublestring As String) As Double? Dim retval As Double Dim sep As String = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator If Double.TryParse(Replace(Replace(doublestring, ".", sep), ",", sep), retval) Then Return retval Else Return Nothing End If End Function

Resultados:

'' HUNGARIAN REGIONAL SETTINGS (NumberDecimalSeparator: ,) '' Clean Double.TryParse '' ------------------------------------------------- Double.TryParse("1.12", d1) '' Type: DOUBLE Value: d1 = 0.0 Double.TryParse("1,12", d2) '' Type: DOUBLE Value: d2 = 1.12 Double.TryParse("abcd", d3) '' Type: DOUBLE Value: d3 = 0.0 '' GetDouble() method '' ------------------------------------------------- d1 = GetDouble("1.12") '' Type: DOUBLE Value: d1 = 1.12 d2 = GetDouble("1,12") '' Type: DOUBLE Value: d2 = 1.12 d3 = GetDouble("abcd") '' Type: DOUBLE Value: d3 = 0.0 '' Nullable version - GetDoubleNullable() method '' ------------------------------------------------- d1n = GetDoubleNullable("1.12") '' Type: DOUBLE? Value: d1n = 1.12 d2n = GetDoubleNullable("1,12") '' Type: DOUBLE? Value: d2n = 1.12 d3n = GetDoubleNullable("abcd") '' Type: DOUBLE? Value: d3n = Nothing


Dim text As String = "123.45" Dim value As Double If Double.TryParse(text, value) Then '' text is convertible to Double, and value contains the Double value now Else '' Cannot convert text to Double End If