J'ai besoin d'afficher un nombre avec des virgules et un point décimal.
Exemple: cas 1: le nombre décimal est 432324 (sans virgule ni point décimal). Il est nécessaire de l’afficher sous la forme 432 324,
mais pas 432.324
Cas 2: le nombre décimal est 2222222.22 (sans virgule). Il est nécessaire de l’afficher sous la forme 2 222 222,22
J'ai essayé ToString("#,##0.##")
. Mais ce n'est pas le formater
int number = 1234567890;
Convert.ToDecimal(number).ToString("#,##0.00");
Vous obtiendrez le résultat 1,234,567,890.00
.
Peut-être voulez-vous simplement la chaîne de format standard "N"
, Comme dans
number.ToString("N")
Il utilisera des milliers de séparateurs et un nombre fixe de décimales fractionnaires. Le symbole pour les séparateurs de milliers et le symbole pour le point décimal dépendent du fournisseur de format (typiquement CultureInfo
) que vous utilisez, tout comme le nombre de décimales (qui sera normalement de 2, selon vos besoins).
Si le fournisseur de format spécifie un nombre différent de décimales et si vous ne souhaitez pas le modifier, vous pouvez indiquer le nombre de décimales après le N
, comme dans .ToString("N2")
.
Éditer: La taille des groupes entre les virgules est régie par le
CultureInfo.CurrentCulture.NumberFormat.NumberGroupSizes
tableau, étant donné que vous ne spécifiez pas un fournisseur de format spécial.
Essayer avec
ToString("#,##0.00")
À partir de MSDN
* Le spécificateur de format personnalisé "0" sert de symbole zéro. Si la valeur en cours de formatage a un chiffre à la position où le zéro apparaît dans la chaîne de formatage, ce chiffre est copié dans la chaîne de résultat; sinon, un zéro apparaît dans la chaîne de résultat. La position du zéro le plus à gauche avant le point décimal et du zéro le plus à droite après le point décimal détermine la plage de chiffres toujours présents dans la chaîne de résultat.
Le spécificateur "00" arrondit la valeur au chiffre le plus proche précédant la décimale, où l'arrondi par rapport à zéro est toujours utilisé. Par exemple, le formatage 34.5 avec "00" donnerait la valeur 35. *
J'ai eu le même problème. Je voulais formater des nombres tels que le format "Général" dans des feuilles de calcul, c'est-à-dire afficher les nombres décimaux s'ils sont significatifs, mais les couper ensuite. En d'autres termes:
1234,56 => 1 234,56
1234 => 1 234
Il doit prendre en charge un nombre maximal de places après la décimale, mais ne mettez pas de zéros ou de points qui le suivent si vous n'en avez pas besoin, et bien sûr, il doit être adapté à la culture. Je n'ai jamais vraiment trouvé une façon propre de le faire en utilisant String.Format seul, mais une combinaison de String.Format et Regex.Replace avec une aide à la culture de NumberFormatInfo.CurrentInfo a effectué le travail (programme LinqPad C #).
string FormatNumber<T>(T number, int maxDecimals = 4) {
return Regex.Replace(String.Format("{0:n" + maxDecimals + "}", number),
@"[" + System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator + "]?0+$", "");
}
void Main(){
foreach (var test in new[] { 123, 1234, 1234.56, 123456.789, 1234.56789123 } )
Console.WriteLine(test + " = " + FormatNumber(test));
}
Produit:
123 = 123
1234 = 1,234
1234.56 = 1,234.56
123456.789 = 123,456.789
1234.56789123 = 1,234.5679
Pour Razor View:
[email protected]("{0:#,0.00}",item.TotalAmount)
CultureInfo us = new CultureInfo("en-US");
TotalAmount.ToString("N", us)
Tout ce qui est nécessaire est "#, 0.00", c # fait le reste.
Num.ToString ("#, 0.00" ")
Votre question n’est pas très claire mais cela devrait permettre d’atteindre ce que vous essayez de faire:
decimal numericValue = 3494309432324.00m;
string formatted = numericValue.ToString("#,##0.00");
Alors formatted
contiendra: ,494,309,432,324.
Essayer avec
ToString("#,##0.###")
Produit:
1234.55678 => 1.234.556
1234 => 1 234
Si vous utilisez des variables de chaîne, vous pouvez formater la chaîne directement à l'aide d'un fichier :
spécifiez ensuite le format (par exemple, N0, P2, etc.).
decimal Number = 2000.55512016465m;
$"{Number:N}" #Outputs 2,000.55512016465
Vous pouvez également spécifier le nombre de décimales à afficher en ajoutant un nombre à la fin, comme
$"{Number:N1}" #Outputs 2,000.5
$"{Number:N2}" #Outputs 2,000.55
$"{Number:N3}" #Outputs 2,000.555
$"{Number:N4}" #Outputs 2,000.5551
string Mynewcurrency = DisplayIndianCurrency("7743450.00");
private string DisplayIndianCurrency(string EXruppesformate)
{
string fare = EXruppesformate;
decimal parsed = decimal.Parse(fare, CultureInfo.InvariantCulture);
CultureInfo hindi = new CultureInfo("en-IN");
// string text = string.Format(hindi, "{0:c}", parsed);if you want <b>Rs 77,43,450.00</b>
string text = string.Format(hindi, "{0:N}", parsed); //if you want <b>77,43,450.00</b>
return ruppesformate = text;
}