Calcolatrice arrotondamento al centesimo
Risultato
Valore arrotondato
- Centesimi
- 268
Arrotondare un importo al centesimo significa tagliarlo a due cifre decimali, con gli importi che stanno esattamente a mezzo centesimo che vanno via da zero: 2,675 diventa 2,68 e 0,005 diventa 0,01. È l'ultimo passo di quasi ogni calcolo che riguarda il denaro, perché un prezzo moltiplicato per una quantità, o un'aliquota applicata a un imponibile, quasi mai atterra esattamente su un numero intero di centesimi. Farlo bene è più difficile di quanto sembri. Il modo più ovvio moltiplica per 100, arrotonda a un numero intero e divide di nuovo, e fallisce proprio sugli importi che interessano: 1,005 moltiplicato per 100 fa 100,49999999999999 invece di 100,5, quindi il numero arrotonda per difetto a 1,00 e l'ultimo centesimo sparisce in silenzio. Stampare il valore con due decimali ha lo stesso problema per la stessa ragione, perché sta guardando lo stesso numero leggermente troppo piccolo. Nessuno dei due fallimenti si annuncia. Quello che esce è un importo dall'aspetto del tutto normale, e l'unico modo di accorgersene è sapere quale sarebbe dovuto essere. Questa pagina evita la trappola spostando la virgola come testo invece di moltiplicare, così la decisione viene presa sul valore esatto. Riporta anche l'importo come numero intero di centesimi, che è la forma che vale la pena conservare quando ci devi fare ancora dell'aritmetica. Il risultato è scritto come la tua lingua scrive il denaro: l'italiano separa le migliaia con il punto e i centesimi con la virgola, l'inglese scambia i due segni, e lo stesso importo torna quindi con due grafie diverse, che è esattamente il punto. Due importi che differiscono solo nell'ultimo centesimo tornano come numeri diversi, ed è tutto qui il motivo per cui la pagina esiste: l'errore di arrotondamento da virgola mobile non si vede, e un centesimo mancante in una fattura è un errore di arrotondamento che nessuno nota finché non si somma tutto.
Quattro importi dall'aspetto normale che arrotondano dalla parte sbagliata
| Importo | Arrotondato | Centesimi |
|---|---|---|
| 2.675 | 2.68 | 268 |
| 1.005 | 1.01 | 101 |
| 0.005 | 0.01 | 1 |
| -0.005 | -0.01 | -1 |
Ogni riga qui è un importo che un'implementazione diretta sbaglia, e ognuna fallisce per una ragione propria. 2,675 è l'esempio che tutti usano ed è l'unico caso in cui moltiplicare per cento funziona per caso, dato che atterra esattamente su 267,5: è quindi un cattivo campione e un buon avvertimento, perché un lettore che controllasse solo questa riga troverebbe il proprio codice d'accordo e concluderebbe che non c'è niente da correggere. 1,005 è il guasto vero: un centesimo non ha una forma binaria esatta, quindi moltiplicarlo dà 100,49999999999999 ed entrambi i metodi ovvi rispondono 1,00. 0,005 è esattamente mezzo centesimo e va via da zero, che su un importo positivo equivale ad andare verso l'alto. E -0,005 è lo stesso importo con un segno, dove le due regole si separano: arrotondare un mezzo negativo verso più infinito dà uno zero negativo, che si stampa come -0,00. La terza colonna cammina di fianco alle altre così che ogni riga mostri anche le due viste di un solo importo: il decimale alla sua sinistra, il numero intero di centesimi alla sua destra, calcolato dall'importo arrotondato perché i due non possano mai contraddirsi. I numeri dentro la tabella sono calcolati dalla pagina e usano il punto come separatore decimale, mentre il testo che stai leggendo usa la virgola: sono lo stesso numero scritto in due modi, non un errore.
Formula
2,675 -> 2,68; 1,005 -> 1,01; 0,005 -> 0,01; -0,005 -> -0,01; centesimi = arrotondato * 100
- valore
- L'importo da arrotondare, da meno un miliardo a più un miliardo. Più di due decimali sono accettati di proposito: 1,005 e 2,675 sono esattamente ciò per cui questa pagina esiste, e un campo che li rifiutasse allontanerebbe i casi che deve trattare. Il campo non impone due decimali, e non deve farlo: l'oggetto è la regola di arrotondamento, non il formato dell'ingresso
- arrotondato
- L'importo dopo l'arrotondamento a due cifre decimali, e la prima riga del risultato. È un numero e non un pezzo di testo, ed è per questo che viene scritto con il separatore decimale e quello delle migliaia della tua lingua: 1234,57 da noi, mentre l'inglese scriverebbe lo stesso importo scambiando i due segni. Questa differenza rispetto alla pagina di arrotondamento generale è voluta ed è l'unica a parità di ingresso
- centesimi
- Lo stesso importo espresso come numero intero di centesimi, che è un risultato a sé e non un secondo modo di scrivere il primo. 268 è un intero con cui puoi sommare, dividere e contare; 2,68 è un decimale che torna a essere un numero in virgola mobile nel momento in cui lo moltiplichi per qualsiasi cosa. È calcolato dall'importo già arrotondato e non da quello originale, così le due righe non possono mai contraddirsi: 1,005 dà 1,01 accanto a 101, mai 1,01 accanto a 100
- mezzo via da zero
- La regola per gli importi che stanno esattamente a mezzo centesimo: 0,005 va a 0,01 e -0,005 va a -0,01. Arrotondare verso l'alto e arrotondare via da zero coincidono sugli importi positivi e differiscono su quelli negativi, ed è lì che la distinzione si guadagna il suo posto: il metodo ingenuo sugli interi restituisce qui uno zero negativo, e -0,00 non è una cosa che si debba mostrare a qualcuno come importo dovuto
- 1,005 * 100 = 100,49999999999999
- Il difetto attorno a cui questa pagina è costruita. Un centesimo non si può memorizzare esattamente in binario, quindi moltiplicare per cento atterra appena sotto il punto di mezzo e l'arrotondamento va dalla parte sbagliata. Ogni metodo che moltiplica prima, sia che poi arrotondi il numero sia che lo formatti a due decimali, eredita quell'errore e risponde 1,00. Spostare invece la virgola nel testo tiene il valore esatto, e la risposta esce 1,01
- -0,005 -> -0,01
- Il mezzo centesimo negativo, e il caso in cui le due regole di arrotondamento si separano. L'importo sta esattamente mezzo centesimo sotto lo zero, e la regola lo manda più lontano dallo zero invece che verso l'alto, quindi diventa -0,01 e non -0,00. Arrotondare un mezzo negativo verso più infinito dà come risultato uno zero negativo, che si stampa come -0,00 e si legge come un errore di arrotondamento anche se l'aritmetica era coerente
Ogni calcolo che finisce in denaro finisce qui. Un conto diviso fra più persone quasi mai si divide in centesimi interi, e il resto va assegnato a qualcuno o arrotondato via; un'imposta o una percentuale di mancia applicata a un imponibile produce un importo con più decimali di quanti ne abbia il denaro; e un prezzo unitario moltiplicato per una quantità fa lo stesso. Arrotondare alla fine è il passo ovvio, ma quello che conta di più è arrotondare nel mezzo. Un piano di ammortamento calcola gli interessi sul debito residuo a ogni periodo e arrotonda al centesimo gli interessi di ogni periodo prima di riportarli, perché arrotondare solo alla fine lascia accumulare le parti frazionarie: su trecentosessanta periodi quella deriva sono dollari interi, e il saldo finale smette di coincidere con quello del finanziatore. Lo stesso ragionamento vale ovunque un totale si costruisca da parti arrotondate: prima si arrotondano le parti e poi si sommano, non il contrario. Il numero di centesimi è la forma da conservare per quel genere di lavoro, dato che è un intero e resta esatto fino in fondo. Quando invece la domanda riguarda i decimali in generale e non il denaro — una misura a tre decimali, una cifra a due cifre significative — la pagina di arrotondamento copre tredici bersagli diversi in un posto solo; questa pagina copre l'unico bersaglio che il denaro usa, e lo fa con una regola che l'aritmetica non può sbagliare.
Esempi svolti
L'importo predefinito: 2,675
- L'importo sta fra 2,67 e 2,68, esattamente a metà fra i due
- Un mezzo va via da zero, quindi la risposta è 2,68 e non 2,67
- Moltiplica l'importo arrotondato per 100: 2,68 × 100 = 268
- La risposta è un importo di due euro e sessantotto centesimi, cioè 268 centesimi
L'esempio a cui tutti ricorrono, ed è per questo che è il valore predefinito qui. È anche l'unico caso in cui il metodo ingenuo dà per caso la risposta giusta, dato che 2,675 per 100 in binario atterra esattamente su 267,5 mentre 1,005 no: se fosse l'unico campione della pagina, un lettore che lo confrontasse con il proprio codice li troverebbe d'accordo e concluderebbe che non c'è nessun problema da risolvere. È l'esempio successivo a mostrare la differenza, ed è per questo che la pagina apre con questo importo sullo schermo e usa l'altro qui sotto.
L'importo che frega tutti: 1,005
- L'importo sta esattamente a metà fra 1,00 e 1,01
- Un mezzo va via da zero, quindi la risposta è 1,01
- Moltiplicare per cento dà 100,49999999999999 invece di 100,5, perché un centesimo non ha una forma binaria esatta
- Un metodo che moltiplica prima arrotonda quindi per difetto e risponde 1,00, perdendo un centesimo
- Spostare la virgola nel testo tiene il valore esatto, quindi quello che esce è 1,01
L'esempio per cui questa pagina esiste. Moltiplicalo per cento e ottieni 100,49999999999999: non per caso appena sotto il punto di mezzo, ma perché 1,005 non è rappresentabile esattamente in binario e il valore memorizzato sta un soffio sotto. Entrambi i metodi ovvi ereditano quell'errore: arrotondare il numero moltiplicato dà 1,00, e formattare il valore a due decimali dà 1,00 ugualmente, perché stanno guardando lo stesso numero leggermente troppo piccolo. Niente nell'output sembra sbagliato. Un centesimo è semplicemente sparito, e l'unico modo di accorgersene è sapere quale sarebbe dovuta essere la risposta. Gli importi a mezzo centesimo come questo sono esattamente dove atterrano i calcoli sul denaro, dato che un'aliquota applicata a un prezzo dispari li produce in continuazione.
Un importo normale con troppi decimali: 1234,5678
- Le prime due cifre decimali sono 56, e quello che segue è 78, più di mezzo centesimo
- Quindi la seconda cifra decimale sale: 1234,57
- Moltiplica per 100: 1234,57 × 100 = 123.457
- Scritto per esteso, l'importo è milleduecentotrentaquattro e cinquantasette centesimi
Il caso banale, e vale un esempio perché la pagina non sia fatta solo di trappole. Non succede niente di difficile: la terza cifra decimale è 7, quindi l'importo arrotonda nel modo ordinario ed entrambi i metodi concordano. Quello che questo caso mostra è la formattazione, che è la differenza che un lettore nota per prima. In italiano l'importo torna come 1234,57, con la virgola prima dei centesimi e il punto a separare le migliaia; in inglese i due segni si scambiano; in francese al posto del punto compare uno spazio. Le cifre sono identiche e la pagina non le tocca: quello che cambia è come la tua lingua scrive il denaro, e questa pagina la segue mentre la pagina di arrotondamento generale di proposito non lo fa.
Mezzo centesimo sotto zero: -0,005
- L'importo sta esattamente a metà fra zero e meno un centesimo
- Un mezzo va via da zero, che qui significa verso il basso: -0,01
- Moltiplicare per 100 dà esattamente -0,5, quindi questo si scala in modo pulito
- Arrotondare -0,5 a un numero intero nel modo ingenuo dà zero negativo, che si stampa come -0,00
- Spostare la virgola nel testo dà -1 centesimo, e -0,01 come importo
Il caso che separa le due regole di arrotondamento. Sugli importi positivi, arrotondare il mezzo verso l'alto e arrotondarlo via da zero coincidono, quindi la distinzione sembra un cavillo. Qui si separano: arrotondare -0,5 verso l'alto dà zero con il segno meno attaccato, e un importo di zero centesimi negativi non è una cosa che si debba mostrare a nessuno. Questo si scala anche in modo pulito, dato che -0,005 per 100 fa esattamente -0,5: il guasto binario non è simmetrico rispetto al segno, ed è per questo che una batteria di importi di prova ha bisogno dei negativi oltre ai positivi. Un rimborso, un credito o uno sconto che supera l'importo arrivano tutti qui.
Limiti
L'importo deve essere un numero da meno un miliardo a più un miliardo, e il risultato arrotondato può stare un passo fuori da quell'intervallo: 999.999.999,999 arrotonda per eccesso esattamente a un miliardo, e l'uscita in centesimi è allora cento miliardi. Le uscite restano esatte a quella grandezza perché un numero intero di centesimi così grande sta ancora dentro l'intervallo in cui i numeri interi sono rappresentati con precisione. La regola di arrotondamento è il mezzo via da zero, e non c'è nessuna impostazione per cambiarla: una pagina con un interruttore per la regola dovrebbe spiegare quale regola usano i tribunali del tuo paese, e non lo fa. Gli importi negativi vengono arrotondati via da zero e non verso l'alto, e le due cose differiscono esattamente sui casi a mezzo centesimo. La pagina non porta con sé una valuta: sa a quanti centesimi ammonta un importo ma non sa come si chiamino quei centesimi, quindi l'uscita è un numero e il simbolo lo aggiungi tu. Arrotonda un importo alla volta e non divide un totale fra più persone, non assegna resti e non quadra un piano di ammortamento. La tabella di riferimento qui sotto mostra quattro importi fissi invece di seguire quello che hai digitato, e i numeri che contiene sono stampati senza localizzazione: lo stesso importo compare lì con il punto decimale in ogni lingua, anche se il pannello dei risultati qui sopra localizza. Il campo accetta solo cifre e un eventuale segno meno: qui 1234,57 va digitato con la virgola, mentre nella tabella lo stesso importo compare con il punto.
Domande frequenti
- Perché 1,005 si arrotonda a 1,01 e non a 1,00?
- Perché sta esattamente a metà fra 1,00 e 1,01, e la regola del mezzo manda l'importo via da zero. La risposta sembra quella sorprendente solo perché le implementazioni ovvie restituiscono 1,00. Moltiplica 1,005 per cento e ottieni 100,49999999999999, non 100,5: un centesimo non si può memorizzare esattamente in binario, e il valore che viene memorizzato sta un soffio sotto quello vero. Quindi un metodo che scala prima, sia che poi arrotondi il numero sia che lo formatti a due decimali, sta guardando un valore appena sotto il punto di mezzo e arrotonda per difetto. Il centesimo non sparisce in modo rumoroso: quello che esce è un importo dall'aspetto normale. Questo singolo ingresso è la ragione per cui qui c'è una pagina invece di una formula da una riga.
- Arrotonda il mezzo per eccesso o al pari?
- Il mezzo via da zero: verso l'alto sugli importi positivi, verso il basso su quelli negativi. È quello che fa quasi ogni sistema di cassa ed è quello che una persona intende quando arrotonda un prezzo, quindi 2,5 centesimi diventano 3 e -2,5 centesimi diventano -3. Arrotondare il mezzo al numero pari è l'altra regola diffusa, ed esiste per impedire che lunghe colonne di numeri derivino verso l'alto quando vengono sommate: conta nella statistica e in parte del lavoro contabile, e non è quello che fa questa pagina. Le due regole concordano su ogni importo tranne che sui mezzi esatti, ed è per questo che la differenza è facile da mancare finché un pagamento non atterra proprio su uno. Non c'è nessun interruttore, perché un interruttore avrebbe bisogno di spiegare quale regola si applichi a quale ordinamento.
- Perché riportare anche il numero di centesimi oltre all'importo?
- Perché i due servono a cose diverse, e il numero intero è quello che resta esatto. Duecentosessantotto è un intero: puoi sommarlo ad altri centesimi interi, dividerlo fra più persone, moltiplicarlo per una quantità e continuare senza che gli succeda niente. Due virgola sessantotto è un decimale, e nel momento in cui lo moltiplichi per qualcosa torna a essere un numero in virgola mobile con lo stesso problema di rappresentazione che sei venuto qui a evitare. È anche il motivo per cui i centesimi sono calcolati dall'importo già arrotondato e non dall'ingresso originale: se fossero calcolati a parte, un ingresso come 1,005 potrebbe stampare 1,01 su una riga e 100 su quella dopo, e due numeri che si contraddicono nello stesso pannello sono peggio di uno dei due leggermente fuori.
- Perché il risultato usa la virgola in italiano?
- Perché il denaro si scrive come lo scrive la lingua del lettore, e non è lo stesso ovunque. L'inglese mette il punto prima dei centesimi e la virgola fra le migliaia; l'italiano e gran parte dell'Europa continentale fanno il contrario, e il francese usa uno spazio dove l'italiano mette il punto. La pagina riporta l'importo come numero e non come pezzo di testo, quindi la formattazione segue la lingua in cui stai leggendo. La pagina di arrotondamento generale di questo sito di proposito non lo fa: il suo risultato è testo con un punto fisso e senza raggruppamento, ed è l'unico punto in cui le due pagine differiscono davvero a parità di ingresso.
- Dove conta davvero arrotondare al centesimo?
- Ovunque un totale si metta insieme da parti. Un piano di ammortamento è il caso più chiaro: gli interessi di ogni periodo si calcolano sul saldo residuo, si arrotondano al centesimo e si riportano, e fare l'arrotondamento una volta sola alla fine lascia accumulare le frazioni avanzate: su trecentosessanta periodi quella deriva sono dollari interi e il saldo finale smette di concordare con quello del finanziatore. Dividere un conto ha la stessa forma, dato che un totale diviso fra più persone raramente atterra su centesimi interi e il centesimo spaiato deve andare da qualche parte. E ogni aliquota applicata a un importo — imposta, mancia, sconto — produce più decimali di quanti ne abbia il denaro. La regola da portarsi via è che prima si arrotondano le parti e poi si sommano le parti arrotondate, non il contrario.
- Qual è l'importo più grande che la pagina accetta?
- Un miliardo, in entrambe le direzioni, e alla risposta arrotondata è concesso di stare un passo fuori da lì: 999.999.999,999 arrotonda per eccesso esattamente a un miliardo, e l'uscita in centesimi è allora cento miliardi. Le uscite restano esatte a quella grandezza perché un numero intero di centesimi così grande sta ancora dentro l'intervallo in cui ogni numero intero è rappresentato con precisione: il tetto è ben sotto il punto in cui gli interi cominciano a essere approssimati. Gli ingressi oltre il limite vengono rifiutati invece che troncati, dato che arrotondare in silenzio un importo che non hai digitato sarebbe una risposta peggiore di un no.
Riferimenti
- Rounding — the half-away-from-zero rule, and how it differs from rounding half upward on negative values — Wolfram MathWorld (United States)
- What Every Computer Scientist Should Know About Floating-Point Arithmetic — why 1.005 stored as a double is a hair below the half-way point — Oracle (originally ACM Computing Surveys)
- Number.prototype.toFixed — the round-half-to-even behaviour, and why formatting a value to two decimals is not the same as rounding it — MDN Web Docs (Mozilla)
- Arrotondamento — la regola con cui un numero si sostituisce con un altro di cifre minori, e perché la scelta della soglia cambia il risultato sugli importi — Treccani, Istituto della Enciclopedia Italiana (Italia)