Formato de números decimais

5 respostas
Link_pg

Putz to com um problemão com formato de números decimais…
Quando obtenho um número decimal do banco de dados (no caso um campo ‘Salario’) o valor vem com um monte de zeros (50.0000).
Até ai tudo bem, eu uso o DecimalFormat(“0.00”) e ele formata os zeros (50,00). O problema ai é essa vírgula, porque quando eu vou editar um registro e ele já tem o campo Salario, nem o Java converte para double, nem o MySql aceita essa vírgula (ele só aceita ponto).
Ja tentei usar um replace e tal mas não funciona… Resumindo, quero trocar essa vírgula por um ponto

Flww

5 Respostas

J

Ao solicitar um objeto da classe NumberFormat, passa como parâmetro um Locale.US, já que nos Estados Unidos o símbolo para as casas decimais é um "ponto".

Executa esse código aí embaixo que você verá a diferença!

import java.util.*;
import java.text.*;

public class Teste{

	public static void main(String [] args){
		NumberFormat nf = NumberFormat.getNumberInstance(Locale.US);
		NumberFormat nfLocal = NumberFormat.getNumberInstance();
		double num = 10.5;
		System.out.println("US: " + nf.format(num) + "\nLocal: " + nfLocal.format(num));
	}	
	
}

Espero ter ajudado!!

H

fiz um exemplo e a saida foi 50.0...confirme se é isso que vc quer.

import java.text.DecimalFormat;

public class Teste {

	private DecimalFormat df;
	private String numero;
	
	public Teste(){
		
		this.numero = "50.0000";
		
		Double nr = Double.valueOf(numero);
		
		this.df = new DecimalFormat("0.00");
		df.format(nr);
		System.out.println(nr);
		
	}
	public static void main(String [] args){
		new Teste();
	}
	
}

neste caso, não é necessario usar a classe DecimalFormat, o fato de estar convertendo para Double, ja deica a saida como : 50.0

Link_pg

Na verdade quero que saia 50.00 com dois numeros depois do ponto
se eu uso o DecimalFormat sai 50,00 e seu uso o NumberFormat sai 50

H

Olha, Tenta assim:
Observe o nf.setMinimumFractionDigits(2);

public class Teste {
 
 	private String numero;
 	private String nr2;
 	private Double nr;
 	public Teste(){
 		
 		numero = "50.000000";
 		nr = Double.valueOf(numero);
 		
 		NumberFormat nf = NumberFormat.getNumberInstance(Locale.US);
 		nf.setMinimumFractionDigits(2);
 		nr2 = nf.format(nr);
 		 		
 		System.out.println(nr2);
 		
 	}
	
 	public static void main(String [] args){
 		new Teste();
 	}
 	
 }

a saida deste exemplo é 50.00

Link_pg

Valew mesmo, resolveu o meu problema!

Abraços, flww!!

Criado 11 de outubro de 2006
Ultima resposta 12 de out. de 2006
Respostas 5
Participantes 3