2008-09-01 6 views
2

Je tente de définir une zone de texte asp.net à un champ de type de données SQL 2005 argent, le résultat initial affiché à l'utilisateur est 40,0000 au lieu de 40,00. Dans mon contrôle de zone de texte asp.net, je voudrais afficher uniquement les 2 premiers chiffres après le point décimal, par exemple. 40,00Meilleure façon d'afficher/formater le type de données SQL 2005 argent dans ASP.Net

Quelle serait la meilleure façon de faire cela? Mon code est ci-dessous:

this.txtPayment.Text = dr["Payment"].ToString(); 

Répondre

2
this.txtPayment.Text = string.Format("{0:c}", dr[Payment"].ToString()); 
0

Utilisez la méthode ToString avec "c" pour le formater comme monnaie.

this.txtPayment.Text = dr["Payment"].ToString("c"); 

Standard Numeric Format Strings

2

Est-ce que le travail de chaîne de format "c" sur ASP.NET de la même manière comme dans, par exemple, Windows Forms? Parce que dans WinForms je suis assez certain qu'il obéit les paramètres de la monnaie du client. Donc, même si la valeur est stockée en dollars américains, si le PC client est configuré pour afficher Yen, c'est le symbole monétaire qui sera affiché. Ce n'est peut-être pas ce que vous voulez.

Il est peut-être plus sage si tel est le cas à utiliser:

txtPayment.Text = dr["Payment"].ToString("00.00") 
0

Hamilton @ Matt

Il fait. "c" fonctionne pour tous les CurrentCultureInfo, la question devient si tous les utilisateurs de l'application web ont la même devise que le serveur, sinon, ils devront obtenir le client de cultureinfo et utiliser la monnaie glanée à partir de là.

0

Après quelques recherches, je suis avec les éléments suivants:

string pmt = dr["Payment"].ToString(); 
double dblPmt = System.Convert.ToDouble(pmt); 
this.txtPayment.Text = dblPmt.ToString("c",CultureInfo.CurrentCulture.NumberFormat); 

Je vais tester tous les échantillons de code donnés. Si je peux résoudre cela avec une ligne de code, c'est ce que je vais faire.

Questions connexes