2010-12-11 6 views
0

Où puis-je définir le style dans lequel double est écrit par la méthode ToString()? Je reçois par exemple 2,2345 alors que je veux avoir 2,2345double séparé par des virgules

merci pour ay conseils,

bye

Répondre

2

Le Double.ToString() method est surchargée, alors vous pouvez l'appeler avec deux différentes signatures obtenir la sortie que vous voulez.

Dans ce cas, vos paramètres de culture affectent la sortie de la fonction ToString(). Pour obtenir le résultat que vous voulez, vous devez appeler Double.ToString(IFormatProvider), en passant CultureInfo.InvariantCulture:

myDouble.ToString(CultureInfo.InvariantCulture); 

Cela devrait résoudre votre problème. Pour référence ultérieure, notez qu'une autre version commune de Double.ToString() est la surcharge Double.ToString(String). Le paramètre String est une chaîne de format numérique, prédéfinie ou spécifiée. Par exemple:

myDouble.ToString("format string here"); 

MSDN a quelques articles sur les chaînes de format: Standard Numeric Format Strings et Custom Numeric Format Strings.

+0

Vous ne pourrez pas changer le séparateur décimal en utilisant uniquement une chaîne de format - vous devez forcer une culture à faire. – rsenna

2
double a = 2.2345; 
string b = a.ToString(CultureInfo.InvariantCulture); 
2

Vous devez spécifier un FormatProvider, habituellement comme un CultureInfo.

Par exemple:

string s = d1.ToString(System.Globalization.CultureInfo.InvariantCulture); 
0

Si vous voulez l'effet d'être sur votre application entière. Cela pourrait être réglé à l'initialisation. Ainsi, notez que ceci signifierait un changement effectif sur toutes les cultures.

var culture = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name); 
culture.NumberFormat.NumberDecimalSeparator = "."; 
Thread.CurrentThread.CurrentCulture = culture; 

Ensuite, il suffit:

string value = (1002.300).ToString(); 
Questions connexes