Tronque(nombre flottant)

Partagez votre expérience de PureBasic avec les autres utilisateurs.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Tronque(nombre flottant)

Message 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)
Répondre