Page 1 sur 1

Formattage de nombre

Publié : dim. 28/nov./2004 11:39
par LOULOU25
Quelqu'un saurait-il ou je puisse trouver une fonction qui permettrait comme dans visual basic de formatter un nombre
ex 100,200
FormatNumber("100,205","###,##") et qui donnerait 100,20 comme résultat
Merci par avance

Publié : dim. 28/nov./2004 14:07
par Chris
Si c'est pour le transformer en texte, il y a StrF(Valeur, Nbre de Décimales), mais il faudra garder la valeur réelle du nombre quelque part si tu veux t'en servir dans un calcul.

Publié : mar. 30/nov./2004 12:48
par brossden
Bonjour tous le monde.

La procédure qui suit ressemble peut être à ce que tu désires :

Code : Tout sélectionner

Procedure.s FormatNumber(Format.s,Number.f, Unit.s)
  Ret.s = ""
  EntF.l = FindString(Format,".",1)-1
  DecF.l = Len(Format)-EntF-1
  EntN.l = Len(Str(Number)) 
  CarF.s = Left(Format,1)
  
  If CarF = "#" 
    CarF = "" 
  EndIf
  
  If EntF => EntN
    Ret = Space(EntF-EntN)+StrF(Number,DecF)
    Ret = ReplaceString(Ret," ",CarF)
  Else
    Ret = Space(EntF)+"."+Space(DecF)
    Ret = ReplaceString(Ret," ","x") 
  EndIf
  
  Ret + Unit 
  
  ProcedureReturn Ret
  
EndProcedure

; Exemples
exemple.s = FormatNumber("0######.##",2355.236," cm")+Chr(13)
exemple + FormatNumber("0###.##",231155.236," dl")+Chr(13)
exemple + FormatNumber(" #######.###",-255.18," m²")+Chr(13)
exemple + FormatNumber("######.##",857.596," Km")+Chr(13)
exemple + FormatNumber("_######.##",2355.236,"")

MessageRequester("Exemples de formats possibles", exemple)