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.

Foi útil?

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+"";
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top