Page 2 sur 2

Re: Tronque(nombre flottant)

Publié : sam. 14/avr./2018 23:18
par nico
Autre version sans utilisation de conversion en texte, pas sûr que cela fonctionne dans tous les cas, le voici:

Code : Tout sélectionner

Procedure.q Tronque(Decimale.d)
    Protected Multiplicateur.q=1
    
    Repeat
        PartiEntiere.q= Int(Decimale*Multiplicateur)
        Decimaledecalee1.d=Decimale*Multiplicateur
        Decimaledecalee2.d=PartiEntiere
        ;Debug Decimaledecalee1
        ;Debug Decimaledecalee2
        If Decimaledecalee1 = Decimaledecalee2
            ProcedureReturn (Abs(Decimale) - Abs(Int(Decimale))) * Multiplicateur
        EndIf
        Multiplicateur=Multiplicateur*10
    Until Multiplicateur =1000000000000000000   
    ProcedureReturn -1
EndProcedure

floating.d =  8.7884578924
Debug Tronque(floating)