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
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
Instancie um NumberFormat, configure os dígitos de fração mínimo e máximo para 2, e use o format para converter.
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));
WATSON,
é que o campo varchar no banco de dados é pra salvar a descrição do produto, ou seja, tenho que usar strings.
Uai, na sua descriçao do produto tem casas decimais?
Nao entendi!
Watson Passos
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.
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.