2010-09-14 9 views
0

J'ai cette chaîne "45043". Comment puis-je convertir en décimal 450,43 (je veux utiliser cultureinfo)chaîne sans point à décimal

TKS

+0

Voulez-vous le convertir dans le type 'decimal' ou voulez-vous juste pour analyser le' string' et le reformater selon CultureInfo? – Larsenal

Répondre

5
string s = "45043"; 
decimal d = decimal.Parse(s)/100; 

(je ne suis pas vraiment sûr où CultureInfo vient en elle. Est-ce que vous voulez convertir le decimal en arrière string ou quelque chose comme ça)

+0

Mieux que Preet au moins, car il fonctionnera pour les nombres avec plus et moins de 3 chiffres à la gauche de la décimale. –

+0

oui je suis d'accord. C'est beaucoup mieux! –

2

vous auriez quelque chose comme:

string x = "45043"; 
double num = Double.Parse(s, CultureInfo.GetCultureInfo("de-DE").NumberFormat); 

il suffit de remplacer la culture que vous voulez ou dériver dynamiquement.

1

Utiliser CultureInfo? Vous voulez dire utiliser des virgules dans certaines cultures et périodes dans d'autres?

Que diriez-vous:

var str = "45043"; 
var strToDecimal = (decimal.Parse(str)/100).ToString(); 
var strExplicit = (decimal.Parse(str)/100).ToString(System.Globalization.CultureInfo.CurrentCulture.NumberFormat); // more explicit version of what's happening above. 
+0

Difficile de dire quelle est la question exacte, mais votre réponse couvre au moins une interprétation possible de la question. – Larsenal

0

Pour afficher TryParse et l'utilisation de CultureInfo

string input = "45053"; 
decimal result; 

if (decimal.TryParse(input, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.CurrentCulture, out result)) 
{ 
    result /= 100M; 
} 
else 
{ 
    // invalid input, handle in whatever way you deem appropriate 
} 
Questions connexes