Gravando no banco com formato errado valor

faltou o DecimalFormatSymbols com o Locale “en-US”

[quote=ErickRAR]O seu DecimalFormat está errado. Se você passar um valor como “2.50”, ele irá mudar para 250.
Ou você passa “2,50” ou altera para :

[/quote]

ESSE DecimalFormat é que está errado. Uma vírgula, em um DecimalFormat, é um separador de milhares. Para especificar que o separador de milhares é um ponto e a vírgula ou ponto decimal é uma vírgula, deve-se usar:

// Formato: 2,50
Locale brazil = new Locale ("pt", "BR");
DecimalFormatSymbols dfs = new DecimalFormatSymbols (brazil);
DecimalFormat dateFormat = new DecimalFormat("#,##0.00", dfs);
// Formato: 2.50
Locale us = Locale.US;
DecimalFormatSymbols dfs = new DecimalFormatSymbols (us);
DecimalFormat dateFormat = new DecimalFormat("#,##0.00", dfs);

[quote=entanglement][quote=ErickRAR]O seu DecimalFormat está errado. Se você passar um valor como “2.50”, ele irá mudar para 250.
Ou você passa “2,50” ou altera para :

[/quote]

ESSE DecimalFormat é que está errado. Uma vírgula, em um DecimalFormat, é um separador de milhares. Para especificar que o separador de milhares é um ponto e a vírgula ou ponto decimal é uma vírgula, deve-se usar:

Locale brazil = new Locale ("pt", "BR");
DecimalFormatSymbols dfs = new DecimalFormatSymbols (brazil);
DecimalFormat dateFormat = new DecimalFormat("#,##0.00", dfs);

[/quote]
Mas com o Locale “pt-BR” o resultado vai continuar como está.

EDIT: Ops, respondi antes do edit, podem ignorar essa resposta.

Tá no começo da Activity assim:


public static final DecimalFormat DINHEIRO_REAL = new DecimalFormat(  
		    "###,##0.00", new DecimalFormatSymbols(new Locale("en", "US")));  
	

[quote=fbrigatt]Tá no começo da Activity assim:

[code]

public static final DecimalFormat DINHEIRO_REAL = new DecimalFormat(
"###,##0.00", new DecimalFormatSymbols(new Locale(“en”, “US”)));

[/code][/quote]
Tudo bem, só que na hora de fazer o parse, você instancia um novo DecimalFormat, ou você usar esse DINHEIRO_REAL para fazer o parse, ou adiciona o Locale ao outro.

Aqui que arrumo isso:


 DecimalFormat dateFormat = new DecimalFormat("#,##0,00"); // AQUI QUE TROCO? COMO FICA COM ESSA LINHA NOVA QUE POSTOU AI? TO PERDIDO NOS FORMAT
 double doubleValue = 0;
 try {
		doubleValue = dateFormat.parse(valor.trim()).doubleValue();
       } catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
      }  

tem que instanciá-lo igual instanciou a DINHEIRO_REAL, aliás, pra que serve essa constante?

Cara, não é má vontade não, to perdido mesmo. Num to me achando mais.

Assim:


 Locale us = Locale.US;  
 DecimalFormatSymbols dfs = new DecimalFormatSymbols (us);  
 DecimalFormat dateFormat = new DecimalFormat("#,##0.00", dfs); 
 double doubleValue = 0;

   try {
		doubleValue = dateFormat.parse(valor.trim()).doubleValue();
	} catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}  
 total = qtde * doubleValue;  

mas é só instanciar o dateFormat igual instancia o DINHEIRO_REAL, resumindo, do new pra frente os 2 tem que ser idênticos.

Tópico Resolvido. Obrigado.