Comment formater la chaîne en argent

J’ai une chaîne comme 000000000100 , que je voudrais convertir en 1.00 et vice versa.

Le zéro initial sera supprimé, les deux derniers chiffres sont la décimale.

Je donne plus d’exemple:

 000000001000  10.00 000000001005  10.05 000000331150  3311.50 

Voici le code que j’essaie, il me donne un résultat sans décimal:

 amtf = ssortingng.Format("{0:0.00}", amt.TrimStart(new char[] {'0'})); 

Convertissez la chaîne en une décimale, puis divisez-la par 100 et appliquez la chaîne de format de devise:

 ssortingng.Format("{0:#.00}", Convert.ToDecimal(myMoneySsortingng) / 100); 

Modifié pour supprimer le symbole monétaire comme demandé et convertir en décimal à la place.

vous devrez d’abord le convertir en un nombre décimal, puis le formater au format monétaire.

EX:

 decimal decimalMoneyValue = 1921.39m; ssortingng formattedMoneyValue = Ssortingng.Format("{0:C}", decimalMoneyValue); 

un exemple de travail: https://dotnetfiddle.net/soxxuW

Ça marche!

 decimal moneyvalue = 1921.39m; ssortingng html = Ssortingng.Format("Order Total: {0:C}", moneyvalue); Console.WriteLine(html); 

Sortie

 Order Total: $1,921.39 
 decimal value = 0.00M; value = Convert.ToDecimal(12345.12345); Console.WriteLine(value.ToSsortingng("C")); //OutPut : $12345.12 Console.WriteLine(value.ToSsortingng("C1")); //OutPut : $12345.1 Console.WriteLine(value.ToSsortingng("C2")); //OutPut : $12345.12 Console.WriteLine(value.ToSsortingng("C3")); //OutPut : $12345.123 Console.WriteLine(value.ToSsortingng("C4")); //OutPut : $12345.1234 Console.WriteLine(value.ToSsortingng("C5")); //OutPut : $12345.12345 Console.WriteLine(value.ToSsortingng("C6")); //OutPut : $12345.123450 

Sortie de la console:

  ssortingng s ="000000000100"; decimal iv = 0; decimal.TryParse(s, out iv); Console.WriteLine((iv / 100).ToSsortingng("0.00")); 

Essayez simple comme ça

  var amtf = $"{Convert.ToDecimal(amt):#0.00}"; 
 //Extra currency symbol and currency formatting: "€3,311.50": Ssortingng result = (Decimal.Parse("000000331150") / 100).ToSsortingng("C"); //No currency symbol and no currency formatting: "3311.50" Ssortingng result = (Decimal.Parse("000000331150") / 100).ToSsortingng("f2"); 

Une fois que vous avez votre chaîne dans un double / décimal pour le mettre dans le format correct pour une utilisation locale spécifique

 double amount = 1234.95; amount.ToSsortingng("C") // whatever the executing computer thinks is the right fomat amount.ToSsortingng("C", System.Globalization.CultureInfo.GetCultureInfo("en-ie")) // €1,234.95 amount.ToSsortingng("C", System.Globalization.CultureInfo.GetCultureInfo("es-es")) // 1.234,95 € amount.ToSsortingng("C", System.Globalization.CultureInfo.GetCultureInfo("en-GB")) // £1,234.95 amount.ToSsortingng("C", System.Globalization.CultureInfo.GetCultureInfo("en-au")) // $1,234.95 amount.ToSsortingng("C", System.Globalization.CultureInfo.GetCultureInfo("en-us")) // $1,234.95 amount.ToSsortingng("C", System.Globalization.CultureInfo.GetCultureInfo("en-ca")) // $1,234.95 

Analyser votre chaîne à un nombre décimal en premier.

vous pouvez aussi faire:

 ssortingng.Format("{0:C}", amt) 

Essayez quelque chose comme ça:

 decimal moneyvalue = 1921.39m; ssortingng html = Ssortingng.Format("Order Total: {0:C}", moneyvalue); Console.WriteLine(html); 
 var tests = new[] {"000000001000", "000000001005", "000000331150"}; foreach (var test in tests) { Console.WriteLine("{0} <=> {1:f2}", test, Convert.ToDecimal(test) / 100); } 

Comme vous n’avez pas demandé le symbole monétaire, j’ai utilisé “f2” au lieu de “C”

essayer

 amtf = amtf.Insert(amtf.Length - 2, ".");