Problemi visualizzazione decimali su maschera continua.

di il
11 risposte

Problemi visualizzazione decimali su maschera continua.

Su una maschera continua visualizzo i dati generati da una query di raggruppamento in cui somma dei campi numerici di tipo precisione singola. Nella form ho già inserito il tipo di formato #.##0,00;#.##0,00;"" , in fase di visualizzazione e tutto corretto. Se invece clicco sopra la  textbox, in cui a livello di query ho effettuato la somma, e mi vengono visualizzati un numero maggiore di decimali rispetto a quanto visualizzato. 

Vi è modo di poter eliminare questa bruttura

11 Risposte

  • Re: Problemi visualizzazione decimali su maschera continua.

    La TextBox di cui parli espone una proprietà “Numero Decimali”, imposta quella.

    Non so cosa ci devi fare con quel dato, ma fai attenzione che per calcoli con i decimali non è proprio indicatissimo… se poi fossero “€” ancora peggio.

  • Re: Problemi visualizzazione decimali su maschera continua.

    Beh, dipende dagli addendi…

    supponiamo di avere una fattura dove calcoli pz. 5 prezzo ivato(22%) 5,00 il totale imponibile  è 20,49180327868852 anche se tu mascheri (perchè in effetti stai mascherando) la parte 180327868852 mostrando solo 20,49  e così per tutte le righe del corpo fattura,  alla fine avrai un risultato con n decimali.

    prova a memorizzare il prezzo riga troncato come standard vuole (credo esista una funzione apposita) in modo da avere come totale riga fino al centesimo e vedrai che la somma combacia anche se entri nel campo.

    in questo modo, chiunque carica quel documento non dovrà arrotondare totale iva e totale documento.

    la legge della matematica vuole che N+Q=Q (la somma di un intero con un razionale genera un numero appartenente all'insieme dei numeri razionali) ergo, se non ti fermi al centesimo ottieni:

    su 6 righe come sopra un totale di 122,9508196721311 che mascherato diventa 122.95 (20,49180327868852 * 5)

    quando ogni gestionale corretto deve riportare:

    20.49 * 6 =( 20.49+20.49+20.49+20.49+20.49+20.49)= 122.94

    in pratica costringi chi, con un gestionale serio carica quel documento, ad intervenire con la voce arrotondamento (attivo/passivo) di 1 centesimo fuori campo iva. l'estetica sarebbe l'ultimo dei problemi.

    morale: tronca i totali al centesimo e risolvi il tuo problema e quello degli altri gestionali.

  • Re: Problemi visualizzazione decimali su maschera continua.

    Sihsandrea,

    in effetti hai ragione il problema non stà nella visualizzazione del dato ma quanto riportato in tabella, ho fatto una prova moltiplicando il valore per 100 e questo è il risultato da  2,13 a -213,000011444092. Ho provato anche a fare l'arrotondamento con round() ma nulla è cambiato 2,13000011444092.

    Qualche idea ?

    Dimenticano tutte le proprietà sia a livello di query  di tabella e  di maschera sono settate con numero decimali 3.

  • Re: Problemi visualizzazione decimali su maschera continua.

    Devi salvare totale riga con round(x) o come hai chiamato quel campo. il resto dei calcoli li lasci fare a query e funzioni di access tanto lavora al centesimo.

    al salvataggio dei dati imponi che totaleriga=round(totaleriga).

    puoi usare tutti i decimali che vuoi, il problema è sempre sul totale riga che diventa imponibile.

    es. pz. 5 prezzo 23,4578999001 totale 117,29 non 117.2894995005 e nemmeno 117.28 (si arrotonda per eccesso o per difetto).

  • Re: Problemi visualizzazione decimali su maschera continua.

    Considerare l'utilizzo del formato dati “Valuta” (indipendentemente dal fatto che il campo rappresenti valori monetari o meno), che non soffre del problema che affligge i formati a virgola mobile (e quello a precisione singola lo è) ed ha 4 cifre decimali gestite di suo. Se serve maggiore precisione ancora bisogna andare sul Numerico con Dimensione campo “Decimale”.

    Distinguere sempre quello che si vede dal contenuto vero.

  • Re: Problemi visualizzazione decimali su maschera continua.

    04/11/2024 - Philcattivocarattere ha scritto:


    Considerare l'utilizzo del formato dati “Valuta” (indipendentemente dal fatto che il campo rappresenti valori monetari o meno), che non soffre del problema che affligge i formati a virgola mobile (e quello a precisione singola lo è) ed ha 4 cifre decimali gestite di suo. Se serve maggiore precisione ancora bisogna andare sul Numerico con Dimensione campo “Decimale”.

    Distinguere sempre quello che si vede dal contenuto vero.

    +1

    Troppi confondono la Formattazione del dato con il dato.

  • Re: Problemi visualizzazione decimali su maschera continua.

    04/11/2024 - Philcattivocarattere ha scritto:

    Distinguere sempre quello che si vede dal contenuto vero.

    Quoto me stesso, e già questo è grave, in più parlo di Excel adesso. Orticaria. Una delle prime operazioni che faccio quando lo devo usare è andare ad abilitare l'opzione “Imposta approssimazione come visualizzata” (a chi interessa, si trova in Opzioni - Impostazioni avanzate - Durante il calcolo della cartella di lavoro …) Se ho 3 percentuali da 33,33% non voglio che la loro somma sia 100%! deve essere 99,99, anche se quel 33,33% deriva da un calcolo che ha il 3 periodico. Voglio 2 cifre decimali? quelle devono essere, punto. Senza tante funzioni di arrotondamento impostate a mano. E poi con Excel non vado d'accordo quindi ci saranno anche altri sistemi per ottenere la stessa cosa anche meglio ma dai tempi del 4.0 quella era e quella è rimasta la strada che uso.

  • Re: Problemi visualizzazione decimali su maschera continua.

    Se vuoi usare decimali personalizzati, salvo ruggine, usa questa funzione dove passi l'importo e i decimali che vuoi.

    FUNCTION ARROTONDAMENTO (IMPORTO AS DOUBLE, DECIMALI AS INTEGER) AS DOUBLE
      DIM X AS INTEGER
      FOR X=0 TO DECIMALI
        IMPORTO=IMPORTO*10
      NEXT
      IMPORTO=INT(IMPORTO)
      IMPORTO=IMPORTO/10
      IF (IMPORTO-INT(IMPORTO))*10 < 5
        X=0
      ELSE 
        X=1
      END IF
      IMPORTO=INT(IMPORTO)+X
      FOR X=1 TO DECIMALI
        IMPORTO=IMPORTO/10
      NEXT
      ARROTONDAMENTO=IMPORTO
    END FUNCTION

    dovrebbe funzionare.

    Faccio ammenda…

  • Re: Problemi visualizzazione decimali su maschera continua.

    05/11/2024 - sihsandrea ha scritto:


      IMPORTO=TRUNC(IMPORTO)
    

    dovrebbe funzionare.

    Nella mia versione di Access (2013) la funzione Trunc non esiste (che poi sia banalmente creabile non si discute), forse esiste nelle versioni successive o in Office365 …

  • Re: Problemi visualizzazione decimali su maschera continua.

    04/11/2024 - Philcattivocarattere ha scritto:


    Considerare l'utilizzo del formato dati “Valuta” (indipendentemente dal fatto che il campo rappresenti valori monetari o meno), che non soffre del problema che affligge i formati a virgola mobile (e quello a precisione singola lo è) ed ha 4 cifre decimali gestite di suo. Se serve maggiore precisione ancora bisogna andare sul Numerico con Dimensione campo “Decimale”.

    Distinguere sempre quello che si vede dal contenuto vero.

    +1

    Io ho deciso di non usare il campo valuta perché avendo valute diverse da gestire mi urta vedere un simbolo non corretto. 

    Io utilizzo i campi decimal precisione 18 e scala 4 (14 interi e 4 decimali), sicuramente sovradimensionati per gli importi con i quali ho a che fare …

  • Re: Problemi visualizzazione decimali su maschera continua.

    05/11/2024 - max.riservo ha scritto:


    05/11/2024 - sihsandrea ha scritto:


      IMPORTO=TRUNC(IMPORTO)
    

    dovrebbe funzionare.

    Nella mia versione di Access (2013) la funzione Trunc non esiste (che poi sia banalmente creabile non si discute), forse esiste nelle versioni successive o in Office365 …

    Mi porto sempre dietro delphi….

    Comunque avevo premesso che sono arrugginito di access…

    ;))

Devi accedere o registrarti per scrivere nel forum
11 risposte