До недавнего времени у меня создалось впечатление, что операция CDbl(x)
в VB.NET была по существу отлитой (т.е. эквивалентом VB (double)x
в С#); но недавнее открытие показало, что это не так.
Если у меня есть эта строка:
Dim s As String = "12345.12345-"
И я делаю это:
Dim d As Double = CDbl(s)
d
будет установлено значение -12345.12345
! Теперь, не поймите меня неправильно, это очень удобно в моем конкретном сценарии; но я должен признать, что я в замешательстве, почему это работает. В частности, я смущен, потому что:
-
Double.Parse
не работает с указанным выше входом. -
Double.TryParse
не работает. -
Convert.ToDouble
не работает.
Как CDbl
настолько умный?