Qual è il modo migliore per gestire i problemi in virgola mobile con i calcoli finanziari in JavaScript?
Risposte
11/22/2024
Nicolas Ahamad
Gestisco personalmente tutti i calcoli con double (o float) e stampo il numero finanziario in formato contoFixed ( 2 ). Se devi arrotondare ai 5 centesimi più vicini puoi mutliply per 0.05 round e dividere per 0.05 (( Math . Round ( x * 0.05 ) / 0.05 ). toFixed ( 2 )).
In questo modo, il programma conosce solo il doppio e l'utente vede solo i decimali. L'unica cosa che dovresti tenere a mente è che x == y per l'utente significa Matematica . abs ( x - y ) < 0.01 per il programma.
Questa abitudine risale al vecchio tempo FORTRAN / COBOL, quando i tipi decimali erano campi fiorenti di fronte ai quali la data / ora / data / ora del PHP sembra una piccola parte ben organizzata della teoria dei tipi.
Ogni cosa va bene, annullando quasi-approssimativamente sotto-approssimativamente, compreso dividendo un anno in 356.2422 giorni con precisione astronomica e un importo annuale in 12 (che dà un numero infinito di decimali in base 10, in base 2 e in base 16). Se dovessi compiacere il tuo commercialista e aggiungendo 12 volte il tuo stipendio annuale arrotondato diviso per 12 (prima / 12 poi rotonda), potresti notare una differenza dell'ordine di 0.06. Mentre, se consenti al tuo stipendio mensile di raddoppiare internamente e lo arrotoli appena prima della stampa, l'errore dovrebbe essere dell'ordine di 15 cifre meglio, cioè dovrai aggiungere 1'000'000'000'000 ' 000 anni per vedere la differenza.
Hi there,Risolvere i tuoi problemi finanziari è possibile, fai i seguenti passi e rendi la tua vita più vuota, meno stressante e più libera + più felice:FASE:Usa un foglio di carta (carta o nel tuo PC), ma la carta è la migliore. 1 per OGNI MESE, quindi scrivi il mese in cima. SPALMARE i fogli per terra. È facile per te vedere.Su ogni foglio, crea una TABELLA e annota: il nome dell'azienda, la...
Risposte
In questo modo, il programma conosce solo il doppio e l'utente vede solo i decimali. L'unica cosa che dovresti tenere a mente è che x == y per l'utente significa Matematica . abs ( x - y ) < 0.01 per il programma.
Questa abitudine risale al vecchio tempo FORTRAN / COBOL, quando i tipi decimali erano campi fiorenti di fronte ai quali la data / ora / data / ora del PHP sembra una piccola parte ben organizzata della teoria dei tipi.
Ogni cosa va bene, annullando quasi-approssimativamente sotto-approssimativamente, compreso dividendo un anno in 356.2422 giorni con precisione astronomica e un importo annuale in 12 (che dà un numero infinito di decimali in base 10, in base 2 e in base 16). Se dovessi compiacere il tuo commercialista e aggiungendo 12 volte il tuo stipendio annuale arrotondato diviso per 12 (prima / 12 poi rotonda), potresti notare una differenza dell'ordine di 0.06. Mentre, se consenti al tuo stipendio mensile di raddoppiare internamente e lo arrotoli appena prima della stampa, l'errore dovrebbe essere dell'ordine di 15 cifre meglio, cioè dovrai aggiungere 1'000'000'000'000 ' 000 anni per vedere la differenza.