Java Double to String Conversão sem formatação
Pergunta
Eu tenho o número 654987. É um ID em um banco de dados. Eu quero convertê -lo em uma string. O duplo regular.ToString (Value) entra em forma científica, 6.54987E5. Algo que eu não quero.
Outras funções de formatação Encontrei verifica o local atual e adiciona mil separadores apropriados e tal. Como é um ID, não posso aceitar nenhuma formatação.
Como fazer isso?
Editar] Para esclarecer: estou trabalhando em um banco de dados especial que trata todas as colunas numéricas como duplas. O dobro é o único tipo (numérico) que eu posso recuperar do banco de dados.
Solução
Use Long:
long id = 654987;
String str = Long.toString(id);
Outras dicas
Use um fixo NumberFormat
(especificamente a DecimalFormat
):
double value = getValue();
String str = new DecimalFormat("#").format(value);
Alternativamente, simplesmente lançado para int
(ou long
Se a faixa de valores é muito grande):
String str = String.valueOf((long) value);
Mas, novamente: por que você tem um valor inteiro (ou seja, um número "inteiro") em um double
variável em primeiro lugar?
Se for um ID inteiro no banco de dados, use um número inteiro. Em seguida, será formato como um número inteiro.
Que tal String.valueOf((long)value);
A respeito:
Long.toString(value)
ou
new String(value)
Também você pode usar
double value = getValue();
NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);
String strVal = f.format(value);
Se o que você está armazenando é um ID (ou seja, algo usado apenas para identificar outra entidade, cujo valor numérico real não tem significado), você não deve usar o dobro para armazená -lo. A precisão quase certamente o ferrará.
Se o seu banco de dados não permitir valores inteiros, você deve armazenar IDs como strings. Se necessário, faça da string a representação da string do número inteiro que deseja usar. Com o uso apropriado dos zeros principais, você pode fazer a ordem alfabética da corda da mesma forma que a ordem numérica do INTS.
Isso deve levá -lo ao seu problema.
E quanto a long.ToString ((longo) valor)?
double d = 56789;
String s = d+"";