Code : Tout sélectionner
Number.f=10.5689474123
j'ai essayé une combinaison de de ValF(StrF(Number,2)) et ValD(StrF(Number,2)) mais cela ne fonctionne pas
Merci
Code : Tout sélectionner
Number.f=10.5689474123
Code : Tout sélectionner
t.f=10.5896523
r.f=Round(t,#PB_Round_Nearest)
Debug r ;Renvoie 11.0
Code : Tout sélectionner
Number.f=10.5689474123
a$ = StrF(Number.f,2)
Debug a$
Code : Tout sélectionner
t.f=10.5896523
r.f=ValF(StrF(t,2))
Debug r ;retourne 10.59000015258789
Code : Tout sélectionner
t.f=10.5896523
Procedure.D RoundFloat(Value.f,pLen)
Protected NI,NF,Div=1,N
NI=Int(Value)
NF=Val(Right(StrF(Value,pLen),pLen))
For N=1 To pLen
Div=Div*10
Next
ProcedureReturn NI+(NF/Div)
EndProcedure
Debug RoundFloat(t,1) ;Retourne 10,6
Debug RoundFloat(t,2) ;Retourne 10,59
Debug RoundFloat(t,3) ;Retourne 10,59
Code : Tout sélectionner
Number.f=10.5896523
Debug StrF(Number, 1)
Debug StrF(Number, 2)
Code : Tout sélectionner
;t.f=10.5896523
t.f=10.5496523
Procedure.D RoundFloat(Value.f,pLen)
Protected NI,NF,Div=1,N
NI=Int(Value)
NF=Val(Right(StrF(Value,pLen),pLen))
For N=1 To pLen
Div=Div*10
Next
ProcedureReturn NI+(NF/Div)
EndProcedure
Debug RoundFloat(t,1) ;Retourne 10,5
Debug RoundFloat(t,2) ;Retourne 10,5500000000001
Debug RoundFloat(t,3) ;Retourne 10,5500000000001