Problemas na manupulação dedados

3 respostas
P

Ola Amigos do PJ

O Seguinte trecho de codigo serve para recuperar o CNPJ de um cliente, que esta armazenado em um campo numerico, converte-lo para String e inserir os caracteres da mascara de CNPJ.
Porem, ao retornar o valor, ele sempre traz com um “.0” ao final da string.

String cnpj = rescli.getString("CLI_CNPJ");
	StringBuffer cnpjed = new StringBuffer(cnpj);
	while (cnpjed.length() < 14){
		cnpjed.insert(0,"0");
	}
	cnpjed.insert(12,"-");
	cnpjed.insert(8,"/");
	cnpjed.insert(5,".");
	cnpjed.insert(2,".");

Obrigado.

3 Respostas

P

corrija o sql para trazer o valor sem o 0, é a melhor forma de trabalhar esse problema, ponha o sql que poderemos de ajudar, e não esqueça de informar o banco com o qual está trabalhando

P

Estou usando uma conexão ODBC para uma base de dados do dBase
o campo é inteiro, com 14 posições,.

O Codigo da conexão e do sql :

String urlcli = "jdbc:odbc:Clientes";
			String usrcli = "";
			String sencli = "";
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
			Connection concli;
			concli = DriverManager.getConnection(urlcli, usrcli, sencli);
			Statement stacli = concli.createStatement();
			ResultSet rescli = stacli.executeQuery("SELECT * FROM client");

Estou convertendo os dados do dbase para Postgre.

Obrigado

P

Resolvi usando o NumberFormat e forçando 0 casas decimais.
Talvez não seje a solução correta, mas funciona.

Mesmo assim obrigado a todos e fica ai o codigo caso alguem precise.

String cnpj = "";
			Double intcnpj = 0.00;
			StringBuffer cnpjed = new StringBuffer("");
			NumberFormat fmt = NumberFormat.getInstance();
			fmt.setMaximumFractionDigits( 0 );
			
			cnpj = rescli.getString("CLI_CGC");
			intcnpj = new Double(cnpj);
			cnpj = fmt.format(intcnpj);

			cnpjed = new StringBuffer(cnpj);

			while (cnpjed.length() < 14){
				cnpjed.insert(0,"0");
			}
						
			cnpjed.insert(12,"-");
			cnpjed.insert(8,"/");
			cnpjed.insert(5,".");
			cnpjed.insert(2,".");
Criado 12 de agosto de 2007
Ultima resposta 13 de ago. de 2007
Respostas 3
Participantes 2