Texte ZerosFinDeChaine

Magic_Doctor

XLDnaute Barbatruc
VB:
Function ZerosFinDeChaine$(num As Variant, x As Byte)
'*********************************************************************************************************
'Complète, avec des 0, un nombre décimal ou pas, de telle sorte qu'il y ait x chiffres après la virgule
'job75
'*********************************************************************************************************
'- num : un nombre
'- x : le nombre de chiffres après la virgule
'Ex : si x = 5 => 2 --> 2,00000
'                 2,203 --> 2,20300
'                 2,02454524 --> 2,02455

Dim signe$, txt$, i%, t$, n$

    On Error Resume Next 'pour que n'apparaisse pas #¡VALOR! si num = ""
    'If num = "" Then Exit Function
    signe = IIf(num = Abs(num), "", "-")
    num = FormatNumber(num, 15) 'pour éviter que ne s'impose la notation scientifique
    txt = CStr(Abs(num))
    For i = 1 To Len(txt)
      t = Mid(txt, i, 1)
      If Not IsNumeric(t) And t <> "," And t <> "." Then Exit For
    Next
    t = Replace(Left(txt, i - 1), ",", ".")
    n = IIf(i = 1, "", Format(Val(t), "0." & String(x, "0")))
    If x = 0 Then n = Replace(n, ",", "") 'pas de décimale après la virgule donc pas de virgule
    ZerosFinDeChaine = signe & n & Mid(txt, i)
End Function
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 343
Membres
111 108
dernier inscrit
Elias30