Que fait CDbl?

J'ai eu jusqu'à récemment été sous l'impression que les CDbl(x) opération dans VB.NET était essentiellement un cast (c'est à dire, le VB équivalent de (double)x en C#); mais une découverte récente a révélé que ce n'est pas le cas.

Si j'ai cette chaîne:

Dim s As String = "12345.12345-"

Et je fais ceci:

Dim d As Double = CDbl(s)

d sera réglé à la valeur -12345.12345! Maintenant, ne vous méprenez pas, c'est le genre de pratique dans mon scénario particulier; mais je dois admettre que je suis confus quant à pourquoi cela fonctionne. En particulier, je suis confus parce que:

  • Double.Parse ne fonctionne pas avec le au-dessus de l'entrée.
  • Double.TryParse ne fonctionne pas.
  • Convert.ToDouble ne fonctionne pas.

Comment est CDbl si intelligent?

source d'informationauteur Dan Tao | 2010-04-16