- 1 1. Conoscenze di Base per la Conversione tra Numeri e Stringhe in Java
- 2 2. Come Convertire Numeri in Stringhe
- 3 3. Come Convertire Stringhe in Numeri
- 4 4. Conversioni usando BigDecimal e BigInteger (Finanza / Calcoli di precisione)
- 5 5. Common Errors During Conversion and How to Handle Them
- 6 6. Recommended Conversion Methods by Use Case
- 7 7. Errori Comuni e Anti‑Pattern
- 8 8. Riepilogo
- 9 9. Domande Frequenti (FAQ)
- 9.1 Q1. Qual è il modo migliore per convertire un numero in una stringa in Java?
- 9.2 Q2. Quale dovrei usare: parseInt o valueOf?
- 9.3 Q3. Esiste un modo per verificare se una stringa è numerica prima della conversione?
- 9.4 Q4. Perché si verifica NumberFormatException durante la conversione numerica?
- 9.5 Q5. Perché non dovrei usare double per i calcoli monetari?
- 9.6 Q6. A cosa devo fare attenzione quando converto i valori di input di un form in numeri?
- 9.7 Q7. Cosa fare se voglio controllare il formato di visualizzazione dopo la conversione in stringa?
1. Conoscenze di Base per la Conversione tra Numeri e Stringhe in Java
Quando si sviluppa in Java, si incontreranno inevitabilmente situazioni come “dati che sembrano numeri ma sono gestiti come stringhe” o “valori ricevuti come stringhe che si vogliono calcolare come numeri”. Ad esempio, input di form, importazioni CSV, risposte API e output di log spesso arrivano come stringhe anche se appaiono numerici.
In questa sezione, organizzeremo perché la conversione è necessaria e i punti con cui i principianti lottano comunemente.
1.1 Perché la Conversione Diventa Necessaria
I programmi Java gestiscono esplicitamente il tipo di dato (type). Tuttavia, gli input e output di dati del mondo reale tendono a diventare “stringhe”, come:
- Input utente : Anche se digiti “123” in una casella di testo, ciò che il programma riceve è fondamentalmente una stringa
- File (CSV / JSON / file di configurazione) : Quando li leggi, spesso ottieni valori come stringhe
- HTTP/API : Molti valori sono passati come stringhe (o il tipo JSON potrebbe essere ambiguo)
- Visualizzazione e log : Piuttosto che outputtare numeri così come sono, è comune convertirli in stringhe e formattarli
Per questo, due direzioni di conversione si verificano frequentemente nel lavoro reale:
- Numero → Stringa : Visualizzazione UI, log, messaggi, concatenazione, ecc.
- Stringa → Numero : calcoli, confronti, controlli di intervallo, aggregazioni, ecc.
Ciò che è importante qui è: anche se sembra numerico, tipi diversi significano cose diverse.
"10"(stringa) e10(numero) potrebbero sembrare uguali, ma sono tipi diversi nel codice- Stringa
"10" + "2"diventa"102"(concatenazione) - Numero
10 + 2diventa12(addizione)
Errori come “Pensavo di sommare, ma è diventata concatenazione di stringhe” accadono facilmente se non si tiene a mente questa distinzione.
1.2 Java È Rigorosa sui Tipi
Java è un linguaggio tipizzato staticamente, quindi le operazioni con tipi non corrispondenti generalmente risultano in un errore di compilazione. Questo migliora la sicurezza, ma quando si passa tra tipi diversi come stringhe e numeri, è necessario eseguire conversioni appropriate.
Ad esempio, se provi a usare un input stringa direttamente come numero, otterrai un errore.
- Vuoi calcolare usando la stringa
"123"come unint→ Devi convertirla inintprima di usarla
Inoltre, Java ha due tipi di tipi numerici: tipi primitivi e classi wrapper, che possono essere una fonte comune di confusione.
- Tipi primitivi:
int,long,double, ecc. (leggeri, numeri base) - Classi wrapper:
Integer,Long,Double, ecc. (numeri gestiti come oggetti)
Ad esempio, Integer.valueOf("123") restituisce un Integer (oggetto), mentre Integer.parseInt("123") restituisce un int (primitivo).
Copriremo questa differenza in modo più dettagliato nella prossima sezione, ma i principianti spesso si bloccano perché “la stessa conversione sembra restituire tipi diversi.”
1.3 Differenze tra Conversione Automatica ed Esplicita
Quando senti “conversione”, potresti immaginare che Java la gestisca automaticamente. In effetti, ci sono comportamenti che sembrano conversioni automatiche in alcuni casi.
Un esempio comune è la concatenazione di stringhe.
- Se scrivi
"Totale: " + 10, il 10 sembra essere convertito automaticamente in una stringa
Tuttavia, sebbene comodo, questo può anche causare risultati non intenzionali.
"10" + 2→"102"(concatenazione di stringhe, non addizione numerica)
Quindi, Java ha casi in cui i valori sono implicitamente convertiti in stringhe, ma Stringa → Numero non è convertita automaticamente di base.
In altre parole:
- Numero → Stringa : può accadere implicitamente in alcuni contesti (come la concatenazione)
- Stringa → Numero : richiede sempre una conversione esplicita (come parseInt)
Ricordare questo ti terrà al sicuro.
Inoltre, quando si convertono stringhe in numeri, gli input non sono sempre validi.
- Stringa vuota
"" - Spazi
" 123 " - Separati da virgola
"1,000" - Provare a convertire un decimale
"12.34"inint - Caratteri non numerici
"12a"
In tali casi, si verificherà un’eccezione di runtime (tipicamente NumberFormatException).
Nei sistemi del mondo reale, è cruciale progettare assumendo che “input non validi possano arrivare”.
2. Come Convertire Numeri in Stringhe
In questa sezione, spiegheremo i modi più comuni per convertire numeri in stringhe in Java, insieme a come scegliere tra di essi.
Questa conversione viene utilizzata costantemente nei log, nell’output UI e nella costruzione di messaggi.
2.1 Utilizzando String.valueOf() (Il Più Comune)
Per convertire numeri in stringhe, l’approccio più sicuro e raccomandato è String.valueOf().
int i = 100;
String s = String.valueOf(i);
Supporta non solo int ma anche long, double, float, boolean e quasi tutti i tipi primitivi.
double d = 12.34;
String s = String.valueOf(d);
Caratteristiche principali di questo approccio:
- Sintassi consistente facile da ricordare
- Funziona sia con tipi primitivi che con classi wrapper
- Alta leggibilità
- Intento chiaro (“questa è una conversione in stringa” a colpo d’occhio)
Stringifica anche in modo sicuro gli oggetti wrapper.
Integer num = null;
String s = String.valueOf(num); // "null"
Anche se passi null, non lancerà una NullPointerException, che è particolarmente utile per il logging.
2.2 Utilizzando Integer.toString() / Double.toString()
Ogni classe wrapper numerica fornisce un metodo di utilità toString().
int i = 100;
String s = Integer.toString(i);
double d = 12.34;
String s = Double.toString(d);
Questo funziona correttamente, ma ha queste caratteristiche:
- Il metodo differisce per tipo (Integer / Double / Long, ecc.)
- È un po’ tedioso ricordarli tutti
- Meno general-purpose di
String.valueOf()
Quindi nei progetti reali, String.valueOf() è spesso preferito a meno che tu non voglia enfatizzare esplicitamente un tipo specifico.
2.3 Attenzione Quando si Chiama toString() su Oggetti
Puoi anche chiamare direttamente toString() su oggetti wrapper o sui tuoi oggetti.
Integer i = 100;
String s = i.toString();
Questo funziona, ma devi fare attenzione se null è possibile.
Integer i = null;
String s = i.toString(); // NullPointerException
Se l’oggetto è null, questo causa un errore di runtime.
Per sicurezza, String.valueOf() è più adatto in casi come:
- Output log
- Generazione di stringhe di debug
- Percorsi di codice dove null può apparire
2.4 Dovresti Usare “+ “”” per la Conversione?
Potresti aver visto codice come questo:
int i = 100;
String s = i + "";
Sì, converte un numero in una stringa. Tuttavia, questo non è un approccio raccomandato.
Motivi:
- L’intento non è ovvio a colpo d’occhio
- È ambiguo se si tratta di concatenazione o conversione
- Spesso non apprezzato nelle code review
- Più probabile causare malintesi durante cambiamenti futuri
Potrebbe apparire in demo brevi o test rapidi, ma è meglio evitarlo per codice manutenibile.
2.5 Riassunto: Come Scegliere la Conversione Numero → Stringa
Per evitare confusione nel lavoro reale, ricorda questo:
- Scelta predefinita: String.valueOf()
- Se vuoi enfatizzare il tipo: Integer.toString() / Double.toString()
- Chiamare toString() su oggetti richiede consapevolezza di null
- Evitare + “” in principio
3. Come Convertire Stringhe in Numeri
Da qui, spiegheremo l’argomento particolarmente importante nei progetti reali: convertire stringhe in numeri.
Poiché l’input utente e i dati esterni non sono garantiti come validi, comprendere i metodi di conversione e le insidie è essenziale.
3.1 Utilizzando Integer.parseInt() (Il Più Base)
Un metodo rappresentativo per convertire una stringa in un int è Integer.parseInt().
String s = "123";
int i = Integer.parseInt(s);
Questo metodo restituisce il tipo primitivo int, che è comodo quando vuoi eseguire immediatamente calcoli o confronti.
int total = Integer.parseInt("10") + Integer.parseInt("20");
// total is 30
Tuttavia, passando stringhe come le seguenti causerà una eccezione di runtime.
"abc"""(stringa vuota)"12.3"(decimale)"1,000"(con virgole)int i = Integer.parseInt("abc"); // NumberFormatException
Questa eccezione non viene rilevata al momento della compilazione—si verifica a runtime, quindi devi fare attenzione.
3.2 Uso di Integer.valueOf()
Integer.valueOf() è un altro modo rappresentativo per convertire una stringa in un numero.
String s = "123";
Integer i = Integer.valueOf(s);
La differenza più grande rispetto a parseInt() è che il tipo di ritorno è Integer (una classe wrapper).
parseInt()→intvalueOf()→Integer
Questa differenza è importante in scenari come:
- Memorizzare valori in collezioni (List / Map)
- Progettazioni che gestiscono null
- Quando vuoi trattare il valore come un oggetto
Internamente, valueOf() lancia anche NumberFormatException se la conversione fallisce.
Quindi non è “meno soggetto a errori” rispetto a parseInt().
3.3 Come scegliere tra parseInt e valueOf
Se non sei sicuro quale usare, questi criteri aiutano:
- Se l’obiettivo è calcolo o confronto → parseInt()
- Se vuoi gestirlo come un oggetto → valueOf()
Poiché Java moderno ha l’autoboxing, la differenza pratica è minore, ma è comunque importante sviluppare l’abitudine di scegliere in base al tipo di ritorno.
3.4 Conversione in altri tipi numerici come double / long
Spesso è necessario convertire stringhe in tipi diversi da interi.
long l = Long.parseLong("100000");
double d = Double.parseDouble("12.34");
Le regole di base sono le stesse:
Long.parseLong()→longDouble.parseDouble()→doubleFloat.parseFloat()→float
Tutti lanciano NumberFormatException se la stringa non può essere convertita.
Una trappola comune è provare a convertire una stringa decimale in un tipo intero:
int i = Integer.parseInt("12.34"); // exception
In tal caso, è necessario un design che tratti il valore come double fin dall’inizio.
3.5 Attenzione a spazi iniziali/finali
L’input dell’utente spesso contiene spazi involontariamente.
String s = " 123 ";
int i = Integer.parseInt(s); // exception
In questi casi, è comune usare trim() prima della conversione.
int i = Integer.parseInt(s.trim());
Tuttavia, anche dopo trim(), si verificherà un’eccezione se rimangono caratteri non numerici.
3.6 Riepilogo: Punti chiave per la conversione Stringa → Numero
Per convertire stringhe in numeri in modo sicuro, tieni a mente questi punti:
- Diffida sempre dell’input esterno
- Progetta assumendo che possano verificarsi eccezioni
- Decidi chiaramente il tipo numerico (int / long / double)
- Pre‑elabora quando necessario (trim, ecc.)
4. Conversioni usando BigDecimal e BigInteger (Finanza / Calcoli di precisione)
I tipi int e double introdotti finora sono comodi, ma è necessario fare attenzione quando la precisione dei calcoli è critica.
Specialmente per denaro, quantità e tassi, BigDecimal e BigInteger sono usati per evitare problemi di arrotondamento e precisione.
4.1 Perché double non è sufficiente
Poiché double è un tipo a virgola mobile, viene memorizzato internamente come un’approssimazione in binario.
Di conseguenza, potresti vedere un comportamento come questo:
double d = 0.1 + 0.2;
System.out.println(d); // 0.30000000000000004
Questo non è un bug—è per design.
Può sembrare minore, ma può essere fatale in casi come:
- Calcoli di denaro
- Elaborazione di fatturazione e liquidazione
- Calcoli cumulativi di tassi di interesse o rapporti
In tali casi, è necessario un tipo che non introduca errori di virgola mobile.
4.2 Conversione Stringa → Numero usando BigDecimal
Con BigDecimal, la regola è: crearlo da una stringa.
BigDecimal bd = new BigDecimal("12.34");
Un modello da evitare è:
BigDecimal bd = new BigDecimal(12.34); // not recommended
Poiché il double originale contiene già un errore di approssimazione, convertirlo in BigDecimal trasporterà quell’errore.
Ricorda: crea sempre BigDecimal da una Stringa.
4.3 Number → String Conversion (BigDecimal)
Per convertire un BigDecimal in una stringa, è comune usare toString().
BigDecimal bd = new BigDecimal("12.3400");
String s = bd.toString(); // "12.3400"
Se desideri formattare la visualizzazione, puoi usare DecimalFormat, ma la migliore pratica è separare l’elaborazione interna dalla formattazione della visualizzazione.
4.4 When to Use BigInteger
BigInteger è usato per gestire interi molto grandi.
BigInteger bi = new BigInteger("12345678901234567890");
Casi d’uso tipici:
- Numeri con un numero di cifre estremamente elevato
- Rappresentazione numerica di ID o valori hash
- Calcoli interi che superano l’intervallo di
long
È meno comune nelle applicazioni aziendali tipiche, ma è efficace quando è necessario gestire interi con limiti sconosciuti o illimitati.
4.5 Summary: How to Think About BigDecimal / BigInteger
- Denaro / calcoli critici di precisione → BigDecimal
- Interi enormi → BigInteger
- BigDecimal dovrebbe essere creato da una String
- Mantieni la formattazione separata dai calcoli
5. Common Errors During Conversion and How to Handle Them
Quando si convertono stringhe in numeri, bisogna presumere che gli errori possano sempre verificarsi.
In questa sezione, organizzeremo le eccezioni comuni e gli approcci di gestione sicura.
5.1 What Is NumberFormatException?
NumberFormatException è un’eccezione runtime lanciata quando una stringa non può essere interpretata come un numero.
int i = Integer.parseInt("abc"); // NumberFormatException
Questa eccezione non viene rilevata al momento della compilazione—compare solo quando il codice viene eseguito.
Pertanto, se l’input proviene dall’esterno (form, file, API, ecc.), devi sempre considerarlo.
Le cause comuni includono:
- Contiene caratteri non numerici
- Stringa vuota o null
- Tentativo di convertire un decimale in un tipo intero
- Contiene virgole o simboli (es. “1,000”)

5.2 Basic Handling with try-catch
L’approccio più semplice è usare try-catch per catturare l’eccezione.
try {
int i = Integer.parseInt(input);
} catch (NumberFormatException e) {
// Handling when conversion fails
}
Punti chiave:
- Gestisce in modo affidabile il percorso di errore
- Rende esplicito il comportamento di fallimento
- È il più comunemente usato nei progetti reali
Combinato con logging e messaggi di errore, questo consente una elaborazione sicura.
5.3 A Pre-check Approach to Avoid Exceptions
Separato dalla gestione delle eccezioni, puoi anche validare in anticipo se è numerico.
boolean isNumber = input.matches("\\d+");
Con una regex, puoi verificare se la stringa contiene solo cifre. Tuttavia, ci sono importanti avvertenze:
- Difficile supportare decimali e numeri negativi
- Può diventare complesso
- Non fornisce una garanzia completa
Quindi, nella pratica, è realistico considerare try-catch come rete di sicurezza finale.
5.4 Be Careful with null and Empty Strings
Prima della conversione numerica, è importante verificare la presenza di null o stringhe vuote.
if (input == null || input.isEmpty()) {
// Error handling
}
Saltare questo controllo può portare a eccezioni o comportamenti inattesi.
Le stringhe vuote sono particolarmente comuni negli input dei form e nei file di configurazione.
5.5 Summary: How to Think About Error Handling
- Considera l’input esterno come potenzialmente non valido
- Usa try-catch per catturare le eccezioni in modo affidabile
- Usa pre‑controlli come validazione supplementare
- Escludi null e stringhe vuote fin dall’inizio
6. Recommended Conversion Methods by Use Case
Finora, abbiamo coperto i principali metodi per convertire tra numeri e stringhe in Java.
In questa sezione, organizzeremo la mentalità basata sui casi d’uso così non esiterai nello sviluppo reale.
6.1 UI Display and Log Output
Per la visualizzazione UI e i log, sicurezza e leggibilità sono al primo posto.
Raccomandato:
- Numero → Stringa:
String.valueOf() - Anche quando potrebbe essere coinvolto un oggetto, usa
String.valueOf()log.info("count=" + String.valueOf(count));
Anche se può comparire null, previene le eccezioni.
6.2 Calcoli e Confronti
Per calcoli e confronti, la regola di base è convertire ai tipi numerici il prima possibile.
- String → Number:
parseInt()/parseLong()/parseDouble() - Dopo la conversione, completare l’elaborazione usando i tipi numerici
int price = Integer.parseInt(inputPrice); int total = price * quantity;
Continuare a elaborare come stringhe può causare bug sottili.
6.3 Input di Modulo e Elaborazione di Dati Esterni
Tratta l’input dell’utente e i dati esterni assumendo che possono arrivare valori non validi.
- controlli su
null/ stringa vuota - gestione delle eccezioni tramite try‑catch
- restituzione di messaggi di errore secondo necessità
try { int age = Integer.parseInt(input); } catch (NumberFormatException e) { // Input error handling }
Evita di scrivere “solo il percorso felice” — pensa prima ai percorsi di errore.
6.4 Denaro e Elaborazione Critica di Precisione
Per denaro, tassi e altri casi in cui l’errore di virgola mobile non è accettabile, usa BigDecimal.
- String → BigDecimal:
new BigDecimal(String) - Separare la formattazione per la visualizzazione dai calcoli
BigDecimal amount = new BigDecimal(inputAmount);
La chiave è non passare attraverso double.
6.5 Memorizzazione in Collezioni o Gestione come Oggetti
Quando memorizzi valori in una List o Map, o quando il tuo design gestisce null, le classi wrapper sono appropriate.
Integer.valueOf()Long.valueOf()List<Integer> list = new ArrayList<>(); list.add(Integer.valueOf("10"));
6.6 Riepilogo dei Casi d’Uso
Riepilogato per caso d’uso:
- Visualizzazione / log →
String.valueOf() - Calcoli →
parseXxx() - Denaro / precisione →
BigDecimal - Input esterno → progettare per le eccezioni
- Collezioni →
valueOf()
7. Errori Comuni e Anti‑Pattern
Convertire tra numeri e stringhe è basilare, ma sia i principianti sia gli sviluppatori esperti possono commettere errori.
Questa sezione riassume gli anti‑pattern da evitare nei progetti reali.
7.1 Tentare di Calcolare Mantenendo le Stringhe
Questo codice sembra plausibile ma è rischioso:
String a = "10";
String b = "20";
String result = a + b; // "1020"
Non è un calcolo — è concatenazione di stringhe.
Per i calcoli numerici, converti prima ai tipi numerici:
int result = Integer.parseInt(a) + Integer.parseInt(b); // 30
7.2 Uso Eccessivo della Conversione “+ “””
String s = value + "";
Funziona, ma l’intento è poco chiaro e la manutenibilità è bassa, quindi non è consigliato.
- Probabile segnalazione nelle revisioni del codice
- Confonde i lettori in seguito
- Ambiguo se si tratta di conversione o concatenazione
Usare esplicitamente String.valueOf() è più sicuro.
7.3 Passare Directly double a BigDecimal
BigDecimal bd = new BigDecimal(0.1); // not recommended
Questo è pericoloso perché usa un double che contiene già un errore di approssimazione.
L’approccio corretto:
BigDecimal bd = new BigDecimal("0.1");
Per denaro e casi critici di precisione, crea sempre il BigDecimal da una stringa.
7.4 Scrivere Codice Supponendo Che le Eccezioni Non Accadano
int i = Integer.parseInt(input);
Nei progetti reali, l’assunzione che l’input sia sempre valido è raramente valida.
Quando gestisci input esterno, includi sempre la gestione delle eccezioni:
try {
int i = Integer.parseInt(input);
} catch (NumberFormatException e) {
// Error handling
}
7.5 Usare Valori Senza Essere Consapevoli delle Differenze di Tipo
È anche comune usare i tipi senza considerare differenze come int vs Integer, o double vs BigDecimal.
- Il tuo obiettivo è il calcolo?
- Il tuo obiettivo è la visualizzazione?
- La precisione è critica?
Scegliere i tipi in base allo scopo è il modo più rapido per prevenire bug.
8. Riepilogo
In Java, la conversione tra numeri e stringhe è una pratica quotidiana, ma è anche un processo in cui piccoli errori possono portare a problemi importanti.
Punti chiave tratti da questo articolo:
. Per Number → String, String.valueOf() è il valore predefinito
Per String → Number, scegli tra parseXxx() e valueOf() in base al tipo di ritorno
Gestisci input esterni assumendo che possano verificarsi eccezioni
Usa BigDecimal per denaro e calcoli critici in termini di precisione
* Evita pattern ambigui come + ""
Piuttosto che memorizzare i metodi, è più importante scegliere in base al caso d’uso e al tipo.
Con questa mentalità, ti bloccherai molto meno spesso nella gestione fondamentale di Java.
9. Domande Frequenti (FAQ)
Qui riassumiamo i punti critici comuni per i lettori che cercano “java number string conversion” in formato Q&A.
Questa sezione è pensata per colmare le lacune che potrebbero rimanere dopo la lettura del testo principale.
Q1. Qual è il modo migliore per convertire un numero in una stringa in Java?
In generale, il metodo più consigliato è String.valueOf().
Motivi:
- Coerente e facile da capire
- Funziona sia con i tipi primitivi sia con le classi wrapper
- Non genera un’eccezione quando si passa null
String s = String.valueOf(100);
Nei progetti reali, usarlo come valore predefinito ti aiuta a evitare errori.
Q2. Quale dovrei usare: parseInt o valueOf?
Scegli in base al tipo di ritorno.
Integer.parseInt()→int(primitivo)Integer.valueOf()→Integer(classe wrapper)
Se il tuo obiettivo è fare calcoli, usa parseInt().
Se vuoi memorizzarlo in collezioni o trattarlo come un oggetto, valueOf() è più adatto.
Q3. Esiste un modo per verificare se una stringa è numerica prima della conversione?
Un approccio semplice è usare un’espressione regolare.
boolean isNumber = input.matches("\\d+");
Tuttavia, questo metodo ha delle limitazioni:
- I decimali e i numeri negativi sono difficili da supportare
- Non può garantire una sicurezza completa
Quindi, nella pratica, è meglio assumere che try-catch sia ancora necessario come misura di sicurezza finale.
Q4. Perché si verifica NumberFormatException durante la conversione numerica?
NumberFormatException si verifica quando una stringa non può essere interpretata come un numero.
Cause comuni:
- Contiene caratteri non numerici
- Stringa vuota o null
- Tentativo di convertire un decimale in un tipo intero
- Contiene virgole o simboli
Quando si gestiscono input esterni, progetta sempre assumendo che possano verificarsi eccezioni.
Q5. Perché non dovrei usare double per i calcoli monetari?
Perché double è memorizzato come un’approssimazione in binario, possono verificarsi errori di virgola mobile.
double d = 0.1 + 0.2; // 0.30000000000000004
Per denaro, tassi e altri casi critici di precisione, la scelta corretta è usare BigDecimal creato da una stringa.
BigDecimal bd = new BigDecimal("0.1");
Q6. A cosa devo fare attenzione quando converto i valori di input di un form in numeri?
Tieni sempre presenti questi punti:
- Verifica la presenza di null / stringhe vuote
- Gestisci le eccezioni con try-catch
- Definisci un comportamento chiaro per i casi di errore
Considera l’input dell’utente come “potenzialmente non valido” per impostazione predefinita per evitare bug.
Q7. Cosa fare se voglio controllare il formato di visualizzazione dopo la conversione in stringa?
Mantieni separate la conversione numerica e la formattazione di visualizzazione.
- Conversione:
String.valueOf()oBigDecimal - Formattazione: usa
DecimalFormat, ecc.
Separare l’elaborazione interna dalla presentazione migliora la manutenibilità.

