Arrotondamenti

di il
19 risposte

Arrotondamenti

Salve, ho un piccolo problema che non sono riuscito a risolvere anche leggendo vari post passati, arrotondamento nei calcoli con access.

Ho inserito in una tabella dei campi numerici (precisione doppia, standard, decimali 0) e dei campi calcolati (con la stessa formattazione) che sommano questi campi.  Alla fine un campo calcolato “Totale” che fa la somma dei vari campi calcolati. NB. Non voglio visualizzare nessun decimale.

Poi ho collegato una maschera nella quale inserisco i valori numerici e leggo i risultati dei campi calcolati.

Il tutto funziona correttamente, ma il problema è l’arrotondamento finale, ovvero:

es.

campo calc.1 (il valore dalle operazioni sarebbe 63,76) visualizzo 64-corretto;

campo calc.2 (il valore delle operazioni sarebbe 80,69) visualizzo 81-corretto;

campo calc3. (il valore delle operazioni sarebbe 54,72) visualizzo 55-corretto;

Nel campo calc.SOMMA Totale (il valore delle somme sarebbe 199,17) visualizza 199 corretto ma non è quello che voglio!
9
perchè se faccio la somma di 64+81+55 (ovvero i campi arrotondati e visualizzati) in realtà è 200!! E io vorrei visualizzare 200…ma come faccio nel campo calcolato a dirgli di arrotondare 199,17 a 200????? Grazie mille, M.

19 Risposte

  • Re: Arrotondamenti

    Io non mi giocherei la carta dal "campo calcolato". Piuttosto una query che svolga lo stesso compito.
    1. Crea una nuova query in visualizzazione struttura
    2. Importa TuaTabella
    3. Trascina nella griglia i 3 campi "primordiali" che io chiamerò Campo1, Campo2, Campo3
    4. Aggiungi altre 3 colonne in cui visualizzi (con opportune espressioni) Campo1Arrotondato, Campo2Arrotondato, Campo3Arrotondato
    5. Aggiungi ancora una 7a colonna in cui scrivi una espressione ad esempio così:
    TotaleArrotondato: [Campo1Arrotondato]+[Campo2Arrotondato]+[Campo3Arrotondato]
    6. Decidi tu quali colonne vuoi mostrare
    7. Salva la query con nome
  • Re: Arrotondamenti

    Grazie poverò..è che con tabella e campi calcolati era semplicissimo senza dover aggiungere la query. La funzione arrotonda sul campo calcolato non funziona immagino...
  • Re: Arrotondamenti

    Se leggi vari thread in giro, molti utenti della vecchia guardia (quando non esisteva il campo calcolato) ritengono "contraddittorio" l'utilizzo del campo di tipo "campo calcolato". I calcoli/espressioni frutto di un qualcosa che NON digita l'utente, in linea generale è sempre meglio farlo fare alle query.
    Il fatto che le versioni di Access da 2007 in poi abbiano introdotto il "campo calcolato", suggerisco di usarlo con molta discrezione. Ossia se devi fare UN SOLO calcolo (il più semplice possibile), allora ha ragione di esistere esattamente la tua frase

    marsem ha scritto:


    con tabella e campi calcolati era semplicissimo senza dover aggiungere la query
    che significa, "ma cavolo, per fare un semplice 2+2, devo montare una query apposta apposta?
    Quando il gioco di espressioni si fa più complicato, direi di passare la mano a una query.
  • Re: Arrotondamenti

    marsem ha scritto:


    Salve, ho un piccolo problema che non sono riuscito a risolvere anche leggendo vari post passati, arrotondamento nei calcoli con access.

    Ho inserito in una tabella dei campi numerici (precisione doppia, standard, decimali 0) e dei campi calcolati (con la stessa formattazione) che sommano questi campi.  Alla fine un campo calcolato “Totale” che fa la somma dei vari campi calcolati. NB. Non voglio visualizzare nessun decimale.

    Poi ho collegato una maschera nella quale inserisco i valori numerici e leggo i risultati dei campi calcolati.

    Il tutto funziona correttamente, ma il problema è l’arrotondamento finale, ovvero:

    es.

    campo calc.1 (il valore dalle operazioni sarebbe 63,76) visualizzo 64-corretto;

    campo calc.2 (il valore delle operazioni sarebbe 80,69) visualizzo 81-corretto;

    campo calc3. (il valore delle operazioni sarebbe 54,72) visualizzo 55-corretto;

    Nel campo calc.SOMMA Totale (il valore delle somme sarebbe 199,17) visualizza 199 corretto ma non è quello che voglio!
    9
    perchè se faccio la somma di 64+81+55 (ovvero i campi arrotondati e visualizzati) in realtà è 200!! E io vorrei visualizzare 200…ma come faccio nel campo calcolato a dirgli di arrotondare 199,17 a 200????? Grazie mille, M.
    La tua logica e' SBAGLIATA:

    se usi l'arrotondamento per la visualizzazione e NON per i calcoli, non c'e' nessun modo intelliigente (e che non generi errori in altre situazioni, partendo dallo stesso identico codice) in cui puoi arrotondare 199,17 in 200!

    Quindi, devi deciderti:

    1) o i tuoi valori sono degli interi e quando li salvi come intero fai l'arrotondamento, nel qual caso il campo calcolato e' giusto
    2) oppure calcoli la SOMMA usando i valori ARROTONDATI
    3) infine, se proprio vuoi VISUALIZZARE il valore arrotondato, ma calcolare la SOMMA con i valori originali, ACCETTI il possibile errore!

    Comunque, rimane un errore di fondo: se usi dei numeri con la virgola, perche' dovresti visualizzarli SENZA?
    Non devi rispondere a me , ma a te stesso!
  • Re: Arrotondamenti

    Ciao, uso valori con virgola perché il calcolo avviene tra es. 0,874 x 1.250 ma il risultato mi va bene arrotondato senza decimali. Se metto intero...0,874 diventa 1 per access. Possibile che i programmatori di access abbiamo pensato ad introdurre un campo calcolato e non la possibilità di arrotondare senza dover per forza fare una query? Il mio modo di ragionare forse é troppo excel dipendente.
    Ma mi sembra così semplice fare una molttiplicazione e una somma nella tabella senza dover fare query...perché complicarsi la vita con query. Anche perché a me basta avere la maschera da cui inserisco i dati nela tabella e dove visualizzo il risultato..tutto qui. (Lo so che si può fare con excel...)
  • Re: Arrotondamenti

    Ps. Non voglio calcolare la somma con i valori originali..ma con quelli arrotondati visualizzati...é access che fa il contrario per cui mi trovo a dover arrotondare la somma totale
  • Re: Arrotondamenti

    marsem ha scritto:


    Ps. Non voglio calcolare la somma con i valori originali..ma con quelli arrotondati visualizzati...é access che fa il contrario per cui mi trovo a dover arrotondare la somma totale
    Qui' non e' Access che sbaglia (il suo comportamento e' assolutamente corretto), ma il tuo ragionamento!

    Visualizzare (con arrotondamento) un numero non e' la stessa cosa che utilizzarlo per le oprrazioni!!

    Devi rivedere la logica della tua implementazione.

    NB: anche Excel funziona alla stessa identica maniera!!!! La formattazione della cella NON ha nessuna relazione con l'utilizzo del numero nei calcoli !!!!

    Anche se sei excel centric, la tua affermazione circa il comportamento di Excel e' fallace!

    SENZA formattazione:
    
    63.76
    80.69
    54.72
    199.17
    

    CON formattazione:
    
    64
    81
    55
    199
    
  • Re: Arrotondamenti

    Ok il ragionamento " dietro" di access é corretto, ma non riesco cmnq a capire come sommare 64+81+55 ( come é visualizzato) facendo risultare la somma 200 invece che 199. L'unica soluzione é una query? La funzione round può essermi utile?
  • Re: Arrotondamenti

    migliorabile ha scritto:


    ...
    NB: anche Excel funziona alla stessa identica maniera!!!! La formattazione della cella NON ha nessuna relazione con l'utilizzo del numero nei calcoli !!!!
    Anche se sei excel centric, la tua affermazione circa il comportamento di Excel e' fallace!
    SENZA formattazione:
    
    63.76
    80.69
    54.72
    199.17
    
    CON formattazione:
    
    64
    81
    55
    199
    
    Condivido in tutto gli interventi di [migliorabile]. Ho pensato parecchio se redigere questo post o meno, visto che sono al limite dell'OT e che non è minimamente d'aiuto alla soluzione del thread.
    Excel ha un'opzione (da... sempre a memoria mia, quindi Excel95 e forse precedenti, quelle non le ricordo): "Imposta approssimazione come visualizzata", che mi ritrovo a dover attivare praticamente sempre per evitare proprio "anomalie" da visualizzazione/formattazione scambiata (erroneamente) per arrotondamento.
  • Re: Arrotondamenti

    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.
  • Re: Arrotondamenti

    Ok il problema è stato risolto così...come in excel: senza fare una query arrotondo 63,76 80,69 54,72 in una nuovo campo testo ( con la funzione round) e poi faccio la somma di questi nuovi campi arrotondati n modo che sommando 64+81+55 ottengo 200.
    Grazie a tutti per la pazienza!!
    Alla prossima
  • Re: Arrotondamenti

    Scusate volevo aggiornarvi, ancora più semplice del metodo precedente ( che implicava la necessità cmnq di avere nuove txt box), basta aggiungere la funzione Round direttamente nella formattazione del campo calcolato nella tabella!! Funziona perfettamente.
    Saluti
  • Re: Arrotondamenti

    La funzione SQL è semplicemente ROUND(numeroDaApprossimare , decimaliDaTenere)
  • Re: Arrotondamenti

    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
Devi accedere o registrarti per scrivere nel forum
19 risposte