Arrotondamenti

di il
19 risposte

19 Risposte - Pagina 2

  • Re: Arrotondamenti

    ernestosup ha scritto:


    Bentrovati a tutti,
    Scusate se riprendo questo vecchio post, ma mi trovo propri in questa situazione.

    OsvaldoLaviosa ha scritto:


    Io ho fatto un test con una query usando:
    Round([NomeCampo])
    e funziona. C'è solo un piccolo difetto già sollevato in passato secondo cui 3,50 viene arrotondato a 4. Pare che ci siano correttivi al riguardo, ma personalmente non sono in grado di approfondire.
    La mia situazione Prezzo € 180,00 sconto € 0,0556 Importo € 169,992 desidererei che l'importo risultasse € 170.00.
    Nel mio DB il campo in questione è un espressione di una query. Importo: ([Qtà]*[Prezzo])-([Qtà]*[Prezzo]*[Sconto]).
    Ho provato a fare con la funzione Round ma, non avendo capito dove inserirla, sicuramente ho fatto pasticci e non ho risolto.
    Qualcuno può darmi qualche altro chiarimento ?
    Grazie per le risposte
    ....ROUND(([Qtà]*[Prezzo])-([Qtà]*[Prezzo]*[Sconto])) as IMPORTO
  • Re: Arrotondamenti

    C'e' un FONDAMENTALE problema DI FONDO, che raramente viene preso in considerazione:

    1) gli arrotondamenti sugli importi monetari sono regolati dalla legge

    2) gli importi monetari DOVREBBERO essere rappresentati mediante un FIXED_DECIMAL con un predefinito numero di cifre decimali che DIPENDE dalla valuta. Possono essere 2, 4 o 5, ma ci sono anche altri casi

    3) quando si fanno delle operazioni con importi in valuta, SI DOVREBBE seguire le indicazioni di legge.

    E se non ci sono leggi specifice, comunque ci sono regole consolidate sull'argomento: basta solo immaginare i pasticci che si potrebbero fare con valute che hanno ordini di grandezza diversi, oppure tra quelle che hanno parte decimale e quelle che non ne hanno.

    Quindi, in generale, rappresentare un importo in valuta mediante un float o un double e fare le operazioni come se fosse un normale numero in floating point, E' SBAGLIATO.

    Poi, di QUANTO sia sbagliato, e' tutta un'altra storia.
  • Re: Arrotondamenti

    Biagio, grazie per il suggerimento ho risolto ! Importo: Round(([Qtà]*[Prezzo])-([Qtà]*[Prezzo]*[Sconto]))
    Migliorabile, hai perfettamente ragione, ma io opero con un listino che mensilmente può raggiungere un importo di € 5000,00.
    Pertanto ritenga che l'arrotondamento a maggiore o minore di 5 per me sia soddisfacente.
    Ringrazio comunque tutti per l'aiuto e i suggerimenti.
  • Re: Arrotondamenti

    ernestosup ha scritto:


    La mia situazione Prezzo € 180,00 sconto € 0,0556 Importo € 169,992 desidererei che l'importo risultasse € 170.00.
    Nel mio DB il campo in questione è un espressione di una query. Importo: ([Qtà]*[Prezzo])-([Qtà]*[Prezzo]*[Sconto]).
    Ho provato a fare con la funzione Round ma, non avendo capito dove inserirla, sicuramente ho fatto pasticci e non ho risolto.
    Qualcuno può darmi qualche altro chiarimento ?
    Grazie per le risposte
    Spero che lo sconto sia % e non € come scritto... in quel caso il valore è questo:
    Importo: Round([Qtà]*[Prezzo]*(1-[Sconto]))

    Faccio notare che la Funzione ROUND nativa del VBA di Access non effettua l'arrotondamento commerciale corretto, esempio se il valore è 169.5 uno si aspetta un determinato valore, invece ne ha un'altro... ed ovviamente, le note di Migliorabile in primis, su cui Round farebbe dei disastri.
  • Re: Arrotondamenti

    Correttissimo !! Alex è in percentuale.
    Ho corretto tutto.
    Per me il valore 169.5 viene arrotondato a 170.
    Ho confrontato che in tutte le vendite effettuate in 5 mesi, la differenza del totale è di 1,00 € e quindi per me accettabile.
    Ti ringrazio dell'aiuto
Devi accedere o registrarti per scrivere nel forum
19 risposte