Como trabalhar com moedas(real) com MYSQL?

8 respostas
F

Amigos que tipo de campo eu posso utilizar no MySQL para que um valor
fique 1.121.212,74
ja tentei:
Real
Float
NUmeric

8 Respostas

G

Bem, tenho poko conhecimento em Java e em MySQL mas…

1 - Já que vc esta trabalhando com o caracter “.” e “,” utilizar o formato referente a texto no MySQL (esqueci o nome!).
2 - Utilizar qq formato para numeros e criar logica para inserir o “.” e a “,”.

flww

R

Use Float e aplique a formatação que você quiser na sua aplicação. O banco guarda dados puro, formatação do dado é na aplicação, mais precisamente na camada de apresentação.

[]'s

Rodrigo Auler

F

cara nao te entendi… tem como me explicar melhor?

R

O MySql sempre vai guardar 1121212.74.
Se você quiser mostrar 1.121.212,74 na sua aplicação, vai ter que aplicar uma formatação. Uma opção pra formatar números é usando a classe NumberFormat

[]'s

Rodrigo Auler

F

agora entendi valeu!!!

C

Cara, faça como o amigo disse: Armazene como float e na hora de exibir o valor na aplicação utilize a classe de formatação de números. Exemplo:

NumberFormat nf = NumberFormat.getInstance();
.
.
.
this.JTextField1.setText(String.valueOf(nf.format(rs.getDouble(8)))); //aqui formato o nro que vem do banco.

Não se esqueça de usar o import para a classe NumberFormat:

import java.text.NumberFormat;

Espero ter ajudado.

Té mais.

L

Ola cara
Estando no Mysql o campo Tipo DECIMAL 12,2.

1 - Esta classe de Luiz Cavalcanti, Formata seu Valor. Sabendo que a aplicação é quem formata este valor.

-------------------- classe Moeda---------------------------------------

import java.text.DecimalFormat;

import java.text.DecimalFormatSymbols;

import java.util.Locale;
public final class Moeda {

private static final DecimalFormatSymbols REAL = new DecimalFormatSymbols(BRAZIL);

/**

* Mascara de dinheiro para Real Brasileiro

<em>/

public static final DecimalFormat DINHEIRO_REAL = new DecimalFormat(“¤ ###,###,##0.00”,REAL);

/</em>*

* Mascara de decinal

*/

public static final DecimalFormat DECIMAL = new DecimalFormat("###,###,##0.00",REAL);
public static String mascaraDinheiro(double valor, DecimalFormat moeda){
    return moeda.format(valor);
}

}


---------------- classe para chamar Moeda --------------------
float VALOR = 10000.23; // estar assim no MySql

Moeda tp = new Moeda();
String Formato1 = tp.mascaraDinheiro(VALOR, Moeda.DECIMAL);

String Formato2 = tp.mascaraDinheiro(VALOR, Moeda.DINHEIRO_REAL);

String Formato3 = tp.mascaraDinheiro(VALOR, Moeda.REAL);


// a resposta formata estao em Formato1, Formato2 ou Formato3
// Formato3 fica 10.000,23

Espero ter ajudado
Eu uso esta classe a muito tempo.

Lindberg

S

Faça o seguinte amigo:
SELECT REPLACE(REPLACE(REPLACE(FORMAT( valor,2), ‘.’, ‘|’), ‘,’, ‘.’), ‘|’, ‘,’) as ‘valor’

Não é elegante, mas resolve o problema

febeckers:
Amigos que tipo de campo eu posso utilizar no MySQL para que um valor
fique 1.121.212,74
ja tentei:
Real
Float
NUmeric

Criado 26 de abril de 2007
Ultima resposta 13 de nov. de 2013
Respostas 8
Participantes 6