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

    approssimazione e calcolo

    Salve, stavo creando un sistema di fatturazione in automatico ma ho riscontrato questo problema.

    Premetto che i prezzi inseriti dal venditore sono comprensivi d'iva ma il calcolo dei vari articoli in fattura li vuole vedere al netto. Quindi facendo lo scorporo mi trovo dei valori con numeri infinitesimali dopo la virgola. Sommando regolarmente il tutto il calcolo torna senza problemi ma quando devo approssimare alla seconda cifra decimale per stampare il valore in fattura il problema è che number_format approssima per difetto o eccesso a seconda se il valore è più vicino allo 0 o al 5 decimale sballandomi i calcoli visualizzati in fattura.

    Qual'è l'approssimazione giusta da dare ai valori per far tornare anche i calcoli con sole 2 cifre decimali? Esiste un alternativa a number_format?

  2. #2
    studiati le seguenti funzioni:

    Per gli arrotondamenti: round(), ceil(), floor()
    Per visualizzare le cifre nel formato corretto: number_format() (serve per impostare ad esempio il punto ogni migliaia, e la virgola per separare decimali da interi)

  3. #3
    L'arrotondamento è una cosa mentre la formattazione dei numeri è un'altra. Esegui i calcoli sempre alla massima precisione (con tutte le cifre decimali a disposizione) e poi esegui l'arrotondamento, solo alla fine formatti il risultato come desideri.

    PHP utilizza, oltre agli interi, il Floating point number per il calcolo di precisione.

    ciao

  4. #4
    il calcolo viene fatto preventivamente ma almeno un articolo mi sballa di 1 centesimo l'arrotondamento facendo si, appunto, che il totale risulti quasi sempre di 1 centestimo in più o in meno. D'altronde lavorando con numeri con decimali periodici non c'è verso che torni tutto perfettamente. Che voi sappiate è accettata comunque una fattura con un centesimo di scarto?

  5. #5
    in genere le operazioni di contabilità devono essere precise al centesimo ma se sei tu che emetti fattura puoi arrotondare anche per difetto... gli fai lo sconto.

  6. #6
    ... ciò esula dalla programmazione.
    ma http://guide.supereva.it/non_profit/...10/73748.shtml

    ... quindi round()

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.