Funzione di arrotondamento complessa

Anonimo
2013-02-14T21:25:31+00:00

buonasera a tutti.

in questo db:

https://skydrive.live.com/#cid=7BFFB638725842DE&id=7BFFB638725842DE%21154

trovate una funzione di arrotontamento un po' complessa utilizzata nella query q_fattura, volevo capire con voi se era possibile semplificarla...

Non mi sembra che A2010 (come le versioni precedenti) disponga di funzioni native per l'arrotondamento e la round non mi sembra troppo affidabile...

La funzione nel modulo basGeneral restituisce il valore arrotondato in modo corretto. Sono passato 1/2 stringhe di testo per ottenere il risultato desiderato, credo per certo si possa fare moooolto meglio di così!

Stringhe per elaborare l'arrotondamento perchè passando un double la parte decimale non veniva "vista" correttamene, ad esempio 18,54, veniva visto come 18,533333333333333339, ora però non sono più in grado di ri-simulare il tutto...

Attendo vs commenti e suggerimenti.

buona serata a tutti!

Sandro.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-02-15T14:37:12+00:00

Ciao Sandro,

ok, se l'arrotondamento desiderato è di tipo commerciale, probabilmente il funzionamento anomalo è dovuto da altri fattori, dubito che la funzione che uso da più di un decennio abbia problemi.

Se riscontri anomalie, mostra come ottenerle dalla finestra immediata di VBA, come ad esempio (caso corretto):

--- Immediata ----

? Arrotonda(1.905, 2)

Risultato:  19,1

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-02-15T14:08:24+00:00

    ciao Giorgio,

    non capisco come mai applicando ieri la funzione di Rio ( l'hai scritta tu ;-)? ), non ottenevo l'arrotondamento voluto, come il fatto che un valore passato come 18.54 diventasse 18.5333333333339  a meno di non utilizzare stringhe di testo....però già ieri sera non riuscivo più a simulare...stasera ri-provo ancora e se ri-ottengo quel funzionamento anomalo ti faccio sapere.

    Questo l'aspetto che mi ha spinto a risolvere 1/2 stringhe e non utlizzando strade "matematiche" se mi passi il termine come la funzione che mi ha giustamente suggerito che davvero trovo efficiente ed efficace!

    Per quanto al 1.905 arrotondato a 1,9 con la mia funzione devo dire che è un bug, nel senso che correttamente dovrei ottenere 1.91.

    Come sempre, ti ringrazio per l'intervento e per il supporto.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-02-15T11:21:18+00:00

    Ciao Sandro,

    ok, scusa, visto che parlavi di fattura ero convinto che tu avessi bisogno di una funzione di arrotondamento commerciale, in pratica quella che ho scritto e che ti ho proposto, insomma quella che si usa ad esempio per arrotondare il centesimo dell'imposta Iva.

    A questo punto non ho capito che funzione di arrotondamento stai cercando, puoi spiegare come dovrebbe comportarsi con qualche esempio ?

    Ad esempio 1,905 arrotondato a due decimali secondo il metodo commerciale deve dare 1,91 risultato che correttamente rende la mia funzione, mentre la funzione che hai mostrato tu rende 1,9.  Perchè ? quale è la logica ??

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-02-15T08:04:51+00:00

    ciao Giorgio,

    concordo sull'orrore della funzione, ma credimi non sono riusciuto a trovare di meglio....quelle in rete compresa quella di Rio non mi restituisce il risultato corretto...!

    Round non va bene nemmeno per l'arrondamento per eccesso nel caso il confronto decimale sia con il .5.

    Non ho proprio idea di come semplificare il tutto....

    ciao e grazie come sempre per l'intervento.

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-02-14T22:16:42+00:00

    Ciao Sandro,

    No comment per la funzione di arrotondamento che hai mostrato nel db di esempio :-)

    La funzione Round è affidabilissima, solo che non va bene per l'arrotondamento commerciale, ovvero quello stabilito anche per l'arrotondamento dell'iva (credo dal comitato per l'euro).

    Se vuoi una funzione abbastanza semplice vedi: Funzioni di arrotondamento

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento