Formattage de nombre

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Formattage de nombre

Message 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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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.
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message 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)
Denis

Bonne Jounée à tous
Répondre