2017-08-29 2 views
0

<p class="card"> Credit Limit: <b style="color: #00e500 ;"> [email protected]().ToLocaleString()</b> </p>Modification d'un Int à une chaîne puis mise en forme la chaîne

Je change un Int à l'aide d'une chaîne ToString() Ensuite, je suis en train de formater le nombre J'utilise ToLocaleString() obtenir. Le numéro ressemble à ceci: 80567. J'essaie de le formater pour qu'il ressemble à ceci: 80,567.

L'erreur que je reçois est « chaîne ne contient pas de définition pour « toLocaleString »

Pensées

EDIT: Il va falloir que cette question fermée trouvé où mon erreur RESIDAIENT S'il vous plaît se référer à ce lien.. si vous avez des questions sur le sujet. Link to StackOverFlow issue

+1

toLocaleString est disponible dans d'autres langues, et non C#, à moins que vous implémenter une méthode d'extension. –

+1

Aussi, je ne pense pas toLocaleString serait une méthode sur une chaîne, mais plutôt un int parce que ce serait-il même faire pour une chaîne comme « Bonjour tout le monde! » ? –

+0

@ dominic-gozza pouvez-vous s'il vous plaît marquer une réponse comme acceptée ou nous dire ce qui manque? –

Répondre

3

Je vois que vous voulez montrer somme d'argent, vous devez utiliser la monnaie NumberFormatInfo pour cette première CultureInfo obtenir en cours ou créer pour la langue du pays spécifique:

var culture = Thread.CurrentThread.CurrentCulture; 
// or 
var culture = new CultureInfo("en-US"); 

Utilisez ensuite pour formater votre numéro:

var creditLimit = 100; 
var creditLimitFormatted = creditLimit.ToString("c", culture); 

Le « c » signifie « monnaie », vous pouvez voir d'autres options possibles dans la documentation de NumberFormatInfo.

Formatting Numeric Data for a Specific Culture

0

C'est parce que le int (Int32) classe n'est pas formattable, qui est, il est la représentation ne dépend pas de la culture, par exemple. Vous devez déployer votre code de formatage.

0

Ce article donne un bon aperçu des différents types de formats disponibles. On dirait que vous voulez le Numeric Format Specifier. Vous souhaitez l'utiliser comme ceci

int intValue = 123456789; 
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture)); 
// Displays 123,456,789.0 
0

@Model.CreditLimit - c'est un entier

@Model.CreditLimit.ToString() - ceci est une chaîne

maintenant vous essayez d'exécuter la ToLocaleString() qui clairement de l'erreur

« chaîne ne contient pas une définition pour « toLocaleString »

Pour faire ce que vous voulez archiver essayez les solutions suivantes:

String.Format("{0:n}", @Model.CreditLimit); // Sortie: 80,567.00

string.Format("{0:n0}", @Model.CreditLimit); // Sortie: 80567