Alguém sabe me dizer como faço para acrescentar mais um dado para conversão nesse código?
No caso eu estou transformandoESPEC_MIN de float para Double. Queria transformar também a ESPEC_MAX
Observações:
1 - O título da postagem não ajuda em nada.
2 - Creio que a consulta sql esta correta pois dentro do if vc faz a adição do valor retornado pelo espec_max em modelo.addRow(…);
Assim, se a consulta esta correta, basta repetir o que voce fez, e alterar a condição if de acordo com sua necessidade, pois é desconhecida.
3 - Seria interessante antes você ter esclarecido que a variável rs é um Result Set decorrente de uma sentença sql, pois poderia ser uma classe que você criou com métodos a seu entendimento.
Então veja uma codificação semelhante ao que aparentemente você está solicitando:
Por fim:
Você não transformou ESPEC_MIN de float para double, o que foi realizado na verdade é uma comparação dentro do if, para saber se um número do tipo float tem seu equivalente em inteiro, não foi uma conversão e sim uma comparação.
Na linha int dx2 = (int) dx; ocorre uma conversão, mas é de float para int e não para double.
Em resumo, na sua condificação a condição if quer apenas o valor de dx que tenha seu correspondente em inteiro. XD
R
Rafael16
Fiz as alterações em que você me indicou, mas mesmo assim apenas o ESPEC_MIN esta retornando o valor corretamente. segue o código completo para vê se você possa me dar mais uma orientação.
Eu criei uma table teste e retornou os dados normalmente.
Veja no banco de dados a coluna espec_max, acho que ela esta vazia, ou não possui valores inteiros, ai é só povoar as colunas e tentar novamente.
É so fazer select espec_max from sua_table;
A
anon62916717
Fiz um post anterior pra consulta de uma olhada.
O problema é no banco de dados, a tabela não esta com a coluna espec_max devidamente preenchida.
Teste -> select espec_max from sua_table.
O retorno será vazio ou não há float que gere um inteiro (ex. 7.0).
Use este while abaixo com pequenas melhorias:
while(rs.next()){floatdx=rs.getFloat(“ESPEC_MIN”);floatespecMax=rs.getFloat(“ESPEC_MAX”);//if(dx==Math.rint(dx)||especMax==Math.rint(especMax)){modelo.addRow(newObject[]{rs.getInt(“id_ct”),rs.getString(“ORDEM”),rs.getString(“CDLINHA”),rs.getString(“TCPERFIL”),rs.getString(“EQUIPAMENTO”),rs.getString(“DESCTESTE”),rs.getString(“TCTESTE”),rs.getString(“TIPO”),rs.getInt(“ESPEC_MIN”),//o rs.getInt vai economizar linhas pois a validação foi feita no ifrs.getInt(“ESPEC_MAX”),//o rs.getInt vai economizar linhas pois a validação foi feita no ifrs.getString(“ESPEC_UNID”),rs.getString(“ESPEC_TEXTO”),rs.getString(“REFERENCIA”),rs.getInt(“FREQUENCIA”),rs.getString(“FREQ_UNID”),rs.getString(“PRODUTO”),rs.getString(“ORIGEM”),rs.getString(“LAB”)});}else{modelo.addRow(newObject[]{rs.getInt(“id_ct”),rs.getString(“ORDEM”),rs.getString(“CDLINHA”),rs.getString(“TCPERFIL”),rs.getString(“EQUIPAMENTO”),rs.getString(“DESCTESTE”),rs.getString(“TCTESTE”),rs.getString(“TIPO”),rs.getInt(“ESPEC_MIN”),//o rs.getInt vai economizar linhas pois a validação foi feita no ifrs.getInt(“ESPEC_MAX”),//o rs.getInt vai economizar linhas pois a validação foi feita no ifrs.getString(“ESPEC_UNID”),rs.getString(“ESPEC_TEXTO”),rs.getString(“REFERENCIA”),rs.getInt(“FREQUENCIA”),rs.getString(“FREQ_UNID”),rs.getString(“PRODUTO”),rs.getString(“ORIGEM”),rs.getString(“LAB”)});}}
R
Rafael16
Dessa maneira que você me disse deu certo, mas ele não está me retornando valores com 400.5…
Tenho alguns teste que preciso que retorne com “,”
R
Rafael16
Addler, fiz alguns testes aqui e deu certo esse código, mas oq acontece… quando eu faço alteração 150.5 no MIN e 160.5 no MAX… ele altera normalmente. Mas se eu fizer só em 1 que no caso ou no MIN ou no MAX, ele não salva com a alteração.
OBS: ele só está salvando com a " , ", quando eu faço alteração nos 2
Vc vai precisar modificar o if para atender a sua necessidade.
Veja a sequência de if dentro do while, está pegando tudo, assim você deve remover o if que não precisar: