J'ai le numéro 654987. C'est un ID dans une base de données. Je veux le convertir en chaîne. La Double.ToString régulière (valeur) en fait une forme scientifique, 6.54987E5. Quelque chose que je ne veux pas.
Autres fonctions de formatage Ive found vérifie les paramètres régionaux actuels et ajoute les milliers de séparateurs appropriés et autres. Depuis son ID, je ne peux pas accepter de formatage du tout.
Comment faire?
[Modifier] Pour clarifier: je travaille sur une base de données spéciale qui traite toutes les colonnes numériques comme des doubles. Double est le seul type (numérique) que je peux récupérer dans la base de données.
Utilisez Long:
long id = 654987;
String str = Long.toString(id);
Utilisez un NumberFormat
fixe (en particulier un DecimalFormat
):
double value = getValue();
String str = new DecimalFormat("#").format(value);
alternativement simplement transtypé en int
(ou long
si la plage de valeurs est trop grande):
String str = String.valueOf((long) value);
Mais là encore: 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 entier dans la base de données, utilisez plutôt un entier. Ensuite, il formatera sous forme d'entier.
Que diriez-vous de String.valueOf((long)value);
Vous pouvez également utiliser
double value = getValue();
NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);
String strVal = f.format(value);
Qu'en est-il de:
Long.toString(value)
ou
new String(value)
Si ce que vous stockez est un ID (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 vous gâchera certainement.
Si votre base de données n'autorise pas les valeurs entières, vous devez stocker les ID 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. Avec une utilisation appropriée des zéros non significatifs, vous pouvez rendre l'ordre alphabétique de la chaîne identique à l'ordre numérique des entrées.
Cela devrait vous permettre de contourner le problème.
Qu'en est-il de Long.toString (valeur (longue))?