Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [DELPHI] arrotondamento 2 dedicimali.

    Salve ragazzi..

    vi assillo con un nuovo problema..

    allora io ho una dato, ipotizziamo X che è uguale a 39.69..

    devo calcolarmi un pagamento in 30-60-90gg
    considerando xo che ho i pagametri didivisione variabili
    nel senso che potrei avere 20%,40%,40% come pure 33,33% 33,33%, 33,33%

    quest'ultima divisione è quella + utilizzata e che mi sta creando non pochi problemi..

    Quello che ho pensato io e di fare la suddivisione della variabiel X
    per il 33% e fare poi la differenza per vedere si ho qualche resto per mettere poi nella 3a rata..(90gg)

    HO SOLO BISOGNO ORA DI SAPERE SE ESISTE UNA FUNZIONE CHE
    SE IO HO IPOTIZZIAMO 13.22987 MI DA COME RISULTATO 13.23 .. HO PROVATO LA FUNZIONE ROUND.. MA MI DA 13.. COSA CHE OVVIAMENTE NON
    MI VA A GENIO!!

    SPERO MI POSSIATE AIUTARE ANCORA UNA VOLTA!
    GRAZIE A TUTTI!

    SIMONE

  2. #2

    SEMPLICISSIMO

    allora....

    ti sistemo bene bene....

    la funzione round arrotonda un numero all'intero.....

    se te fai:

    X = numero decimale
    Y = numero dei decimali che vuoi arrotondare
    Z = Risultato

    Z = round ( (X * Y) ) / Y

    e il gioco è fatto.... :metallica

    Ciao


  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,461

    Re: [DELPHI] arrotondamento 2 dedicimali.

    Originariamente inviato da matrix105
    HO SOLO BISOGNO ORA DI SAPERE SE ESISTE UNA FUNZIONE CHE
    SE IO HO IPOTIZZIAMO 13.22987 MI DA COME RISULTATO 13.23 .. HO PROVATO LA FUNZIONE ROUND.. MA MI DA 13.. COSA CHE OVVIAMENTE NON
    MI VA A GENIO!!
    Se possiedi Delphi 7 (ma credo sia presente anche nella 6), puoi usare la funzione SimpleRoundTo che esegue l'arrotondamento al numero di cifre specificato, tra l'altro usando l'algoritmo comunemente impiegato in ambito fiscale.

    La funzione Round non va bene poichè utilizza il metodo di arrotondamento della CPU, la quale applica un algoritmo detto "Banker's Rounding" che distribuisce statisticamente l'errore arrotondando al numero pari più vicino (quindi 0.5 viene arrotondato a 0, 1.5 a 2, 2.5 a 2 e così via...).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Ok, la funzione è quella che cercavo..

    Valore:= qry_Doc.FieldValues['TotDoc']*tbl_Dilazioni.FieldValues['Importo']/100;
    Valore:= SimpleRoundTo(Valore,2);

    ma quando la richiamo da Delphi 6 mi dice:

    Undeclared Identifier 'SimpleRoundTo'

    Va importata in qualche posto?

    GRAZIE

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,461
    Devi aggiungere la unit Math alla clausola uses della unit in cui stai facendo uso della funzione SimpleRoundTo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.