Como salvar um double com 2 casas decimais em um campo de uma tabela do tipo VarChar?

7 respostas
douglasmorais

Boa Tarde amigos.

Como eu devo fazer para que inteiros gerados a partir de um “for” sejam gravados em um campo varchar com 2 casas decimais ?

Por exemplo:

public class gravalente{
public static void main(String args[]){
conexao plug = new conexao();
double  = -6;
double Esferico;
double Cilindrico;
String Descricao = "";
for( Esferico=inicio; Esferico<=6;Esferico=Esferico+0.25) { 
for( Cilindrico=0.25; Cilindrico<=3;Cilindrico=Cilindrico+0.25) {
plug.conecta("com.mysql.jdbc.Driver","jdbc:mysql://localhost/produtos","root","admin");
Descricao = "policarbonato  " + Esferico +" +"+ Cilindrico;

String insertsql = "insert into lentes (esferico,cilindrico,descricao) values ("+Esferico+","+Cilindrico+",'"+Descricao+"')";

plug.grava(insertsql);
}
}
plug.desconecta();
}
}

Eu gostaria que ficasse o campo assim: Policarbonato -0,50 +0,75

Mas está ficando assim: Policarbonato -0,5 +0,75

7 Respostas

watsonpassos

Porque voce não usa Double no Banco ao invés de colocar tudo como String.
Se fosse assim, os banco so teriam campos String.
Use os tipos corretos do banco de dados.

Abraços!

Watson Passos

B

Instancie um NumberFormat, configure os dígitos de fração mínimo e máximo para 2, e use o format para converter.

ivandasilva

Concordo com o watsonpassos, acho melhor você modelar bem o seu banco, senão terá dor de cabeça no futuro.

Mas de qualquer forma, segue um exemplo

double d = 5;
		NumberFormat nf = NumberFormat.getInstance();
		nf.setMinimumFractionDigits(2);
		String numero = String.valueOf(nf.format(d));
douglasmorais

WATSON,

é que o campo varchar no banco de dados é pra salvar a descrição do produto, ou seja, tenho que usar strings.

watsonpassos

Uai, na sua descriçao do produto tem casas decimais?
Nao entendi!

Watson Passos

douglasmorais

O campo “Descrição” é criado em tempo de execução pelo “for”. Assim são gerados numeros que são utilizados na composição do campo descrição.

O meu campo descrição ta ficando assim: POLICARBONATO -0,5 +0,75.

eu queria que ficasse assim: POLICARBONATO 0,50 +0,75.

furutani

Você terá que usar um NumberFormat para formatar o número.
Além do erro de modelagem de dados, retirar a linha que abre conexão de dentro do for isso sobrecarrega muito o sistema.

Criado 28 de março de 2009
Ultima resposta 28 de mar. de 2009
Respostas 7
Participantes 5