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