[RESOLVIDO] Double sem virgulas

6 respostas
F

Boas

Hoje decidi fazer um programa converter.

Mas o problema é :

100 ? = 136.78 U.S

só que quando converto os 100 ?, o resultado é 136,78 e não 136.78.

Depois ao converter os 136,78 para euros da erro por causa da virgula.

Já tentei procurar e não encontrei nenhuma explicação básica.

Alguem sabe como posso fazer com que no resultado apareço um double sem virgulas ma sim ponto.

6 Respostas

leoramos

Isso tem a ver com o Locale da tua aplicação. Podes usar a classe DecimalFormat pra resolver isso.
Abraço!

F

leoramos antes de mais obrigado pela ajuda.

DecimalFormat myFormatter = new DecimalFormat("###.##");

celT = (ferT - 32) / 1.8;
textField.setText(String.format(" %.2f", myFormatter.format(celT)));

eu tentei fazer assim mas dá erro…
não sei como fazer

leoramos

Posta teu erro aqui pra gente, Fabio, que daí fica fácil de entender.
Cola a saída do console aqui.
Abraço!

F
if (o.getSource()==button)
			{
			
				String fer = textField_1.getText();
				double ferT = Double.parseDouble(fer);
				double celT;
				DecimalFormat myFormatter = new DecimalFormat("###.##");
				 
				celT = (ferT - 32) / 1.8;
				textField.setText(String.format("  %.2f", myFormatter.format(celT)));
				
				
				
			}

[size=9]Exception in thread "AWT-EventQueue-0" java.util.IllegalFormatConversionException: f != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printFloat(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at Lista$Handler.actionPerformed(Lista.java:144)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
[/size]

E

Aqui vai um exemplo completo, só para saber o que você realmente quer.

package guj;

import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.util.Locale;

public class FormatarCom2Casas {
    public static void main(String[] args) throws Exception {
        double valorVenda = -12345.678; 
        DecimalFormat df;
        String strValorVenda;
        
        strValorVenda = String.format("%.2f", valorVenda);
        System.out.println(strValorVenda); // resultado: -12345,68
        
        strValorVenda = String.format("%(.2f", valorVenda);
        System.out.println(strValorVenda); // resultado: (12345,68)
        
        strValorVenda = String.format("%,.2f", valorVenda);
        System.out.println(strValorVenda); // resultado: -12.345,68
        
        strValorVenda = String.format("%(,.2f", valorVenda);
        System.out.println(strValorVenda); // resultado: (12.345,68)
        
        strValorVenda = String.format(Locale.US, "%.2f", valorVenda);
        System.out.println(strValorVenda); // resultado: -12345.68
        
        strValorVenda = String.format(Locale.US, "%,.2f", valorVenda);
        System.out.println(strValorVenda); // resultado: -12,345.68
        
        strValorVenda = String.format(new Locale("pt", "BR"), "%.2f", valorVenda);
        System.out.println(strValorVenda); // resultado: -12345,68
        
        strValorVenda = String.format(new Locale("pt", "BR"), "%,.2f", valorVenda);
        System.out.println(strValorVenda); // resultado: -12.345,68
        
        df = (DecimalFormat) NumberFormat.getCurrencyInstance();
        strValorVenda = df.format (valorVenda);
        System.out.println(strValorVenda); // resultado: -R$ 12.345,68
        
        df = new DecimalFormat ("0.##");
        strValorVenda = df.format (valorVenda);
        System.out.println(strValorVenda); // resultado: -12345,68
        
        df = new DecimalFormat ("0.##", new DecimalFormatSymbols (Locale.US));
        strValorVenda = df.format (valorVenda);
        System.out.println(strValorVenda); // resultado: -12345.68
        
        df = new DecimalFormat ("0.##", new DecimalFormatSymbols (new Locale ("pt", "BR")));
        strValorVenda = df.format (valorVenda);
        System.out.println(strValorVenda); // resultado: -12345,68
        
        df = new DecimalFormat ("#,##0.##");
        strValorVenda = df.format (valorVenda);
        System.out.println(strValorVenda); // resultado: -12.345,68
        
        df = new DecimalFormat ("#,##0.##", new DecimalFormatSymbols (Locale.US));
        strValorVenda = df.format (valorVenda);
        System.out.println(strValorVenda); // resultado: -12,345.68
        
        df = new DecimalFormat ("#,##0.##;(#,##0.##)");
        strValorVenda = df.format (valorVenda);
        System.out.println(strValorVenda); // resultado: (12.345,68)
        
        df = new DecimalFormat ("#,##0.##;(#,##0.##)", new DecimalFormatSymbols (Locale.US));
        strValorVenda = df.format (valorVenda);
        System.out.println(strValorVenda); // resultado: (12,345.68)
    }
}
F

Era exactamente isto que estava a precisar :

strValorVenda = String.format(Locale.US, "%.2f", valorVenda); System.out.println(strValorVenda); // resultado: -12345.68

Obrigado pela ajuda !

Criado 13 de setembro de 2011
Ultima resposta 13 de set. de 2011
Respostas 6
Participantes 3