Amigos mysql nao tem tipo moeda… estou ate baixando postgree
como vcs estao fazendo…
Meu cliente quer digitar no campo 1.234,23 e quer realizar calculos …e dai ??
Gostaria de opnioes
Obrigado.
Amigos mysql nao tem tipo moeda… estou ate baixando postgree
como vcs estao fazendo…
Meu cliente quer digitar no campo 1.234,23 e quer realizar calculos …e dai ??
Gostaria de opnioes
Obrigado.
Se tiver diferença de Locale, NumberFormat e trabalhar em cima do Float.
Nada complicado, não é necessário um tipo moeda específico, mesmo porque moeda é algo que muda muito.
Até!
ta entendo. mais poderia me explicar
por exemplo o cliente quer digitar no campo
1.234,23
esse numero para o java nao é valido ou estou enganado:?
pq vou precisar realizar calculos com este valor
Pega essa String, usa o NumberFormat que vai transformá-lo num float válido e você faz a soma. Se quiser retornar na mesma forma, NumberFormat novamente. Nada complexo e nada que não esteja na busca do fórum.
Até!
amigo estou pesquisando no forum mais ainda nao achei nada que fosse extamente oque quero. vc tem o llink?
Procure por “numberformat moeda” que vai aparecer vários tópicos sobre ( eu pesquisei ), é só adaptar.
Até!
float f = Float.parseFloat((String) textField1.getValue());
Locale l = new Locale("pt", "BR");
NumberFormat nf = NumberFormat.getCurrencyInstance(l);
info(nf.format(f));
entao digite 1230.10
e ele me retornou R$ 1.230,10
ta. entendi
mais acontece que eu ja tenho o valor 1.230,10 nao entendi como vou transformar para 1230.10 para poder armazenar no mysql
Bom, agora que você aprendeu a usar o format(), você pode usar o parse() para pegar o R$ 1.234,00 e transformar em 1234.0 . E depois para armazenar no MySQL, terás um campo FLOAT ou DOUBLE e trabalharás no PreparedStatement com setFloat() ou setDouble(). Nada de outro mundo.
Até!
nossa amigao to ate agora para resolver isso…
vc teria um exemplo ?
Obrigado.;
use BigDecimal no lugar de float ou double
Oi marciofermino,
Pelo que eu entendi vc quer uma mascara de edição para que no valor o cara vá digitando e os números já apareçam formatados, é isso?
Bom, se for, use o JTFormattedTextField,
MaskFormatter maskValor = null;
try{
maskValor = new MaskFormatter("###.###,##");
maskValor.setPlaceholderCharacter('_');
}catch(java.text.ParseException e){
e depois para instanciar o JTFormattedTextField use:
jTFvalor = new javax.swing.JFormattedTextField(maskValor);
espero ter ajudado,
Rodrigo.
BEM. DEIXA EU EXPLICAR
A APLICAÇÃO É PARA WEB
UTILIZO NETEBEANS Visual Web
MySQL
Para que o usuario ao digitar o valor ele formate. eu pensei em usar javaScript, bem ai resolvo o problema
mais acontece que quando o usuário digitar vai ficar assim:
1.234,10
eu não posso simplesmente pegar este valor e soma mais 100, por causa dos pontos e virgula ( ou não… ou estou errado ?)
Então penso que para realizar calculos preciso transformar para 1234.10
é isso mesmo ??? estou confuso…
Ou seja preciso de valores monetarios na aplicacao tanto no banco de dados… já andei pesquisando e parece que o mysql não tem campo monetário
então pensei em tratar o valor na tela para apresentar e tratar o valor para poder armazenar no banco.
Se eu usar postgres isso podera resolver… ou vai dar na mesma por causa do JAVA.
Não querendo comparar pq não da mesmo. Mais no Delphi eu digitava 1.234,10 … faria os calculos necessarios e no banco tb ficava 1.234,10…
OOóo meus deus por que tudo isso : rssss
Alguém poderia me dar um explicação.
Obrigado… preciso mesmo de ajuda
Ou você não leu ou fingiu que não leu. Você viu o retorno com format()? Agora veja qual é o retorno de um parse() e faça as contas com ele. E depois eu falei qual é o campo para ser usado no MySQL, não fique falando que não sabe ou não tem.
Caramba! Odeio ter que me repetir.
Até!
entao amigo eu fiz oque vc me falou mais da erro:
float n1 = 0;
n1 = Float.parseFloat((String) textField1.getValue());
textField2.setText(String.valueOf(n1));
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;
public class TesteNUmero {
public static void main(String[] args) {
String valor = "R$ 1.234,00";
Locale l = new Locale("pt", "BR");
NumberFormat nf = NumberFormat.getCurrencyInstance(l);
Number numero;
try {
numero = nf.parse(valor);
double numeroNovo = numero.doubleValue() + 100;
System.out.println("O novo valor é: " + nf.format(numeroNovo));
} catch (ParseException e) {
System.out.println("Erro em:");
e.printStackTrace();
}
}
}
Até!
okay bem é isso mesmo…
agora para vc acabar de ficar bravo…
como eu faco para tirar o R$ … isso é feito pelo local tipo escolher outro pais ::?
eu outra
1,234.10 + 100 = 1,334.10
ele esta dando resultado 1.334,00 pq ??
bem … agora deu certo…
!!!
agora para tirar o R$ :
okay bem é isso mesmo…agora para vc acabar de ficar bravo…
como eu faco para tirar o R$ … isso é feito pelo local tipo escolher outro pais ::?
eu outra
1,234.10 + 100 = 1,334.10
ele esta dando resultado 1.334,00 pq ??
Até!