voilà un simple comparatif de vitesse qui est à mon avis assez évoquant
D'un coté : INT
De l'autre : Un code tout simple 16 fois plus rapide que INT chez moi, simplement mettre le float - 0.5 dans un long
le test
Code : Tout sélectionner
Float1.f = 5.958741545
Float2.f = 6.12154872534
#Nb = 50000000
Time1 = ElapsedMilliseconds()
For i = 1 To #Nb
Long11.l = Int(Float1)
Long12.l = Int(Float2)
Next
Time2 = ElapsedMilliseconds()
For i = 1 To #Nb
Long21.l = Float1 - 0.5
Long22.l = Float2 - 0.5
Next
Time3 = ElapsedMilliseconds()
Texte.s = "Int :" + Chr(10) + "Time = " + Str(Time2 - Time1) + " ms" + Chr(10) + StrF(Float1) + " -> " + StrF(Long11) + Chr(10) + StrF(Float2) + " -> " + StrF(Long12) + Chr(10) + Chr(10) + "Float - 0.5 to Long :" + Chr(10) + "Time = " + Str(Time3 - Time2) + " ms" + Chr(10) + StrF(Float1) + " -> " + StrF(Long21) + Chr(10) + StrF(Float2) + " -> " + StrF(Long22) + Chr(10) + StrF((Time2 - Time1) / (Time3 - Time2), 1) + " time more fast"
SetClipboardText(Texte)
MessageRequester("Test", Texte)
et chez vous ?Int :
Time = 2235 ms
5.958742 -> 5.000000
7.125487 -> 7.000000
Float - 0.5 to Long :
Time = 140 ms
5.958742 -> 5.000000
7.125487 -> 7.000000
16.0 time more fast