71 votes

Conversion d'un double en chaîne de caractères avec N décimales, un point comme séparateur de décimales et aucun séparateur de milliers.

Je dois convertir une décimale en une chaîne de caractères avec N décimales (deux ou quatre) et PAS de séparateur de milliers :

XXXXXXX (point) DDDDD".

Le problème avec CultureInfo.InvariantCulture c'est que l'on place ',' pour séparer les milliers.

UPDATE

Cela devrait fonctionner pour les types décimaux et doubles.


Ma question précédente : Besoin de convertir un double ou un décimal en chaîne de caractères

-3voto

Øyvind Bråthen Points 25211

Vous pouvez simplement utiliser decimal.ToString()

Pour deux décimales

myDecimal.ToString("0.00");

Pour quatre décimales

myDecimal.ToString("0.0000");

Cela donne le point comme séparateur décimal, et pas de séparateur de milliers quelle que soit la culture.

12 votes

Non, il donne le séparateur décimal spécifié par la culture, pas toujours le point.

4 votes

El . dans votre chaîne de format est un caractère de remplacement pour le séparateur décimal et non un caractère littéral. . . Donc si, par exemple, votre culture est fr-FR alors le nombre sera affiché comme 1,23 ou 1,2345 etc.

1 votes

J'ai essayé de remplacer le caractère décimal par une virgule dans les paramètres régionaux de Windows, mais le point est toujours imprimé et non la virgule. Y a-t-il une raison pour laquelle il ne change pas, s'il s'agit simplement d'un caractère de remplacement ?

-5voto

Abel Points 2430
double value = 3.14159D;
string v = value.ToString().Replace(",", ".");
Console.WriteLine(v);

Sortie : 3.14159

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X