Question

J'ai le numéro 654987. C'est un identifiant dans une base de données. Je veux le convertir en chaîne. La Double.ToString (valeur) régulière en fait une forme scientifique, 6.54987E5. Quelque chose que je ne veux pas.

D'autres fonctions de formatage que j'ai trouvées vérifient les paramètres régionaux en cours et ajoutent les séparateurs de milliers appropriés. Comme c'est un identifiant, je ne peux accepter aucune mise en forme.

Comment le faire?

[Modifier] Pour clarifier: je travaille sur une base de données spéciale qui traite toutes les colonnes numériques comme des doublons. Double est le seul type (numérique) que je peux extraire de la base de données.

Était-ce utile?

La solution

Utiliser long:

long id = 654987;
String str = Long.toString(id);

Autres conseils

Utilisez un NumberFormat (en particulier). DecimalFormat ):

double value = getValue();
String str = new DecimalFormat("#").format(value);

alternativement, simplement transtyper vers int (ou long si la plage de valeurs est trop grande):

String str = String.valueOf((long) value);

Mais encore une fois: pourquoi avez-vous une valeur entière (c'est-à-dire un nombre "entier") dans une variable double en premier lieu?

S'il s'agit d'un identifiant d'entier dans la base de données, utilisez plutôt un entier. Ensuite, le formatage est un entier.

Que diriez-vous de String.valueOf ((long) value);

Qu'en est-il de:

Long.toString(value)

ou

new String(value)

Vous pouvez aussi utiliser

double value = getValue();

NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);

String strVal = f.format(value);

Si ce que vous stockez est un identifiant (c'est-à-dire quelque chose utilisé uniquement pour identifier une autre entité dont la valeur numérique réelle n'a aucune signification), vous ne devriez pas utiliser Double pour le stocker. La précision va presque certainement vous nuire.

Si votre base de données n'autorise pas les valeurs entières, vous devez stocker les identifiants sous forme de chaînes. Si nécessaire, faites de la chaîne la représentation sous forme de chaîne de l'entier que vous souhaitez utiliser. Si vous utilisez les zéros de tête de manière appropriée, vous pouvez rendre l’ordre alphabétique de la chaîne identique à l’ordre numérique des valeurs.

Cela devrait vous aider à résoudre le problème.

Qu'en est-il de Long.toString ((long) value)?

    double d = 56789;
    String s = d+"";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top