jjDai
Messages postés291Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention13 mars 2015
-
26 févr. 2006 à 01:40
cs_dugh
Messages postés9Date d'inscriptionlundi 14 avril 2003StatutMembreDernière intervention23 juillet 2009
-
2 mars 2007 à 12:01
Le peti bout de code qui suit me donne des résultats étonnant:
'////////////////////////////////////////////////////////////////////////////////
Private
Sub testTronquer()
Dim h
As
Integer
For h = 1
To 15
Step 2
Tronquer(h, 2)
Next
End
Sub
Private
Sub Tronquer(
ByVal d1
As
Double,
ByVal Diviseur
As
Integer)
'/////////////////////////////////////////////////////////////
En sortie ça me donne
1/2 1 i = 0 === 0
3/2 2 i = 2 === 2
5/2 3 i = 2 === 2
7/2 4 i = 4 === 4
9/2 5 i = 4 === 4
11/2 6 i = 6 === 6
13/2 7 i = 6 === 6
15/2 8 i = 8 === 8
autant dire que la fonction Ceilling ne fait pas tout à fait ce qu'on attend d'elle, elle ne tronque pas à la valeur la plus proche de zéro.
Qualqu'un aurait il une solution ?
jjDai
Messages postés291Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention13 mars 2015 26 févr. 2006 à 09:13
Effectivement, et jusque la je m'en était accomodé, mais la je suis surn algo un peu complexe, et cette anomalie m'a fais perdre pas mal de temps pour la détecter. du coup j'utilise une fonction qui passe pas un trastypage en chainede caractere et de nouveau en entier, mais bonjour les performances.
'------------------------------------------------------
Function Tronquer(
ByVal n
As
Integer,
ByVal diviseur
As
Integer)
As
Integer
jjDai
Messages postés291Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention13 mars 2015 26 févr. 2006 à 19:46
yes au temps pour moi, mais l'aide en ligne n'est pas très explicite et effectivement il y a une function Floor. j'ai donc pris l'une pour l'autre.
Merci pour ces suggestions, en fait c'est Floor dont j'avais besoin.
J'ai un peu de mal à m'adapter à la terminologie de dotNet. Encore 10 ans de pratique et ce sera bon.
encore merci.