Je suis en train de faire un programme avec la version 5.22 pour calculer la taille d'un répertoire.
Voici ma fonction qui traduit la taille en texte:
Code : Tout sélectionner
Procedure.s Convertion(Item)
Protected Txt.s
Select Item
Case 1:Taille=TailleRepertoire
Case 2:Taille=TailleFichiers
EndSelect
;unité sert à savoir dans qu'elle unité on veut convertir
Select Unite
Case 1;Go
reste=Taille%1073741824
If reste>0:Txt.s=StrF(Taille/(1073741824),2) :Else:TexteGo.s=StrF(Taille/(1073741824),0):EndIf:Txt=Txt+" Go"
Case 2;Mo
reste=Taille%1048576
If reste>0:Txt=StrF(Taille/1048576 ,2) :Else:Txt=StrF(Taille/1048576 ,0):EndIf:Txt=Txt+" Mo"
Case 3;Ko
reste=Taille%1024
If reste>0:TexteKo.s=StrF(Taille/1024 ,2) :Else:TexteKo.s=StrF(Taille/1024 ,0):EndIf:TexteKo=TexteKo+" Ko"
Case 4:Txt=StrF(Taille)+" octets"
EndSelect
ProcedureReturn Txt
EndProcedure
Code : Tout sélectionner
If Taille >= 1000 : Unite = 1 : NbDecimals = 2 : EndIf
If Taille >= 10000 : Unite = 1 : NbDecimals = 1 : EndIf
If Taille >= 1000000 : Unite = 2 : NbDecimals = 2 : EndIf
If Taille >= 10000000 : Unite = 2 : NbDecimals = 1 : EndIf
If Taille >= 1000000000 : Unite = 3 : NbDecimals = 2 : EndIf
If Taille >= 10000000000 : Unite = 3 : NbDecimals = 1 : EndIf
Txt=StrF(Taille/1048576 ,NbDecimals)
Il n'y a pas un moyen d'éviter d'arrondir afin d'avoir le résultat escompté soit 51.37?
Je ne sais pas si je me fais bien comprendre...
Merci à tous pour vos réponse(s) et bonne journée!