asp.net中的货币格式字符串

时间:2009-04-17 07:46:43

标签: c# asp.net currency cultureinfo

我使用的是infragistics webgrid,需要格式化货币字符串。为此我需要一个包含模式的字符串,例如“$ ### ###,00”,我希望这可以从我目前的CultureInfo中找到。我怎样才能做到这一点? 我是否需要从以下信息手动撰写:

CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyGroupSeparator
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyGroupSizes
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyDecimalDigits
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyDecimalSeparator

等 等等 等

是单线解决方案吗?

5 个答案:

答案 0 :(得分:11)

decimal moneyvalue = 1921.39m;
string s = String.Format("{0:C}", moneyvalue);

将使用当前的文化。

确保您的web.config中包含以下内容:

<system.web>
   <globalization culture="auto" uiCulture="auto"/>
</system.web>

或者ck建议,在你的页面中声明等效词

答案 1 :(得分:1)

感谢您的所有答案。 事实证明我的要求是错误的。 infragistics网格不希望模式字符串知道哪些分隔符使用,它使用模式字符串表示小数等,然后查询当前文化中的其余文件。 所以这不是问题。 不管怎样,谢谢!

答案 2 :(得分:0)

根据Greg Dean的回答,您可能需要

Culture="auto" UICulture="auto"

在页面的@Page声明中。

答案 3 :(得分:0)

首先 - 如果你是文化特定的,为什么不使用“C”作为格式字符串,因此使用文化的货币格式。

Custom numeric format strings没有货币代币;但是,我怀疑你可以将currency symbol附加到格式化为“### ###,00”的字符串中。

答案 4 :(得分:0)

我们的项目中有几乎相似的要求。 我们所做的是使用webcurrencyedit控制infragistics,将其设置为必须显示货币的列的editorcontrolid,然后设置webcurrencyedit控件的文化。