Soir All,
J'aimerai avoir vos avis/informations sur l'utilisation de val() par rapport à Cxxx et inversement.
J'ai entre-apercu qu'il valait mieux ne pas utiliser val, mais sans explication.
Merci d'eclairer mes lanternes.
Version imprimable
Soir All,
J'aimerai avoir vos avis/informations sur l'utilisation de val() par rapport à Cxxx et inversement.
J'ai entre-apercu qu'il valait mieux ne pas utiliser val, mais sans explication.
Merci d'eclairer mes lanternes.
val est hérité de vb6 (cint et ses acolytes aussi) et certains disent donc d'éviter tout ce qui est de vb6
mais le tas d'instructions qu'on trouve qui viennent de vb6 sont toutes codées avec le framework ou sont des alias de méthodes du framework
cint par exemple n'est pas dans le framework c'est un mot clé du langage visual basic, sous .net il est traduit par le compilateur (par int.tryparse si je me rappelle bien, enfin ca peut se vérifier)
val par contre est trouvable dans le framework, en regardant le code je me suis dit que vu le nombre de lignes c'était peut etre moins performant que double.parse, mais en regardant double.parse y a encore plus de code et 3 ou 4 appels de méthodes (le code a l'air d'avoir quelques similitudes)
shell aussi est hérité de vb6 et partout les gens disent "ah c'est moche, utilisez process.Start !"
mais quand on regarde avec reflector, le code de shell et celui de process.start sont quasi identiques
donc moi ce que j'en pense, c'est qu'on fait du vb.net donc basé sur le langage vb, donc autant utiliser les mots clés de vb si on a envie ...
Merci pour tes commentaires, mais ma question portait plus sur la qualite de conversion.
J'avoue que quand j'ai besoin de convertir un string en numerique, j'utilise automatiquement le val ;)
8O
sur la qualité de la conversion ???
ca veut pas dire grand chose ...
val te donne un double
double.parse aussi
et cdbl aussi
donc tu utilises celui que tu veux (c'est à peu près ce que j'ai dit précédemment)
et ca peut parraitre logique mais si tu veux un int, cint est quand meme à privilégier par rapport à un val
après, les doubles sont en général à éviter en informatique, les decimal évitant les "bugs"
(exemple ici avec 80,74 *100 = 8073.99999999999991 : http://www.developpez.net/forums/d81...-correctement/ )
Val peut s'utiliser de trois façons dont une qui prend en entrée un Char et renvoie un Int, les deux autres renvoyant un Double effectivement.
Maintenant, je ne crois pas que ce soit le fond du problème de Danyel puisqu'il a parlé de string en entrée...
Sur la façon de stocker les doubles, Wikipedia détaille toutes les bizarreries que l'on peut rencontrer : http://fr.wikipedia.org/wiki/IEEE_754