2012-02-08 16 views
5

Ho scritto un programma oggi e ho bisogno di mostrare la percentuale nella mia uscita, ma se ho un input di .05375 ho bisogno di visualizzarlo come 5.375% Ho pensato che avrei potuto farlo usando un NumberFormat ma il mio display finale è semplicemente del 5%. C'è un modo per farlo mostrare i decimali? O come potrei codice intorno a questo? Il programma funziona correttamente è solo quell'uscita che deve essere formattata in modo diverso. Di seguito è quello che ho per la mia uscita per quella linea di codice in questo momento.Java Percentuale per mostrare i decimali

System.out.println("Interest Rate: " + percent.format(InterestRate)); 
+0

uno dei requisiti per la formattazione è che ho bisogno di mostrare 3 posizioni decimali. –

+1

possibile duplicato di [Come si formatta una percentuale frazionaria con java.text.MessageFormat] (http://stackoverflow.com/questions/698261/how-do-you-format-a-fractional-percentage-with-java- text-messageformat) – Veger

+0

@Veger Non ho visto quel post quando ho cercato. Grazie! –

risposta

10

È possibile farlo usando NumberFormat in Java. Di seguito è riportato il codice di esempio:

NumberFormat numberFormat = NumberFormat.getNumberInstance(); 
numberFormat.setMinimumFractionDigits(3); 

System.out.println("Interest Rate: " + numberFormat.format(InterestRate)); 

Un approccio migliore è quello di utilizzare NumberFormat con Locale, come di seguito:

NumberFormat numberFormat = NumberFormat.getNumberInstance(someLocale); 
+1

Ho dovuto cambiarlo in setMaximumFractionDigits (3); a causa di un altro calcolo ma ha funzionato. Grazie! –

+0

Hai ancora bisogno di moltiplicare per 100 da qualche parte. –

+1

@ Peter Lawrey Sei sicuro che Peter? Ha funzionato per me quando l'ho codificato per ottenere l'istanza percentuale che indica di visualizzare una percentuale (penso che stia dicendo a java di moltiplicare per 100 lì) e poi ho impostato le cifre della frazione massima che hanno consentito il mio punto decimale. Ho eseguito numerosi test di successo ma sono nuovo di così, quindi non sono al 100% con Java. –

0

Usa: String.format(); Fare riferimento alla documentazione per la specifica del formato.

6

Se si utilizza il formato %, il numero viene moltiplicato per 100 per voi:

new DecimalFormat("%#0.000").format(rate); 
+0

Non sarebbe '0,000' per tre decimali? –

+0

@PeterLawrey sì, lo ho scostato :( – Bohemian

+0

L'ho preso da 'Ho bisogno che venga visualizzato come 5.375%' ma so cosa intendi.) –

7

Come su

System.out.printf("Interest Rate: %.3f%%%n", 100 * InterestRate); 
+1

+1 nice api kung fu – Bohemian

0
double myVal = 0.05375 
System.out.println("Interest Rate: " + (myVal*100) + "%"); 

Questo dovrebbe dare 5,375%

È quello simile a cosa stai cercando?

+0

Dove dovrebbe venire il '%'? – Blaisorblade

1

risposta selezionata è corretta, ma essere sicuri di utilizzare

NumberFormat.getPercentInstance(); 

che sarà di aiuto bene nel trattare con il per cento. Nessuna delle ulteriori concatenazioni di stringhe o formattazione necessarie.

Problemi correlati