C#有时货币格式不起作用

时间:2010-07-28 19:42:38

标签: c# asp.net

有时货币格式似乎不起作用:

string Amount = "11123.45";
Literal2.Text = string.Format("{0:c}", Amount);

读取11123.45

它应该是:

$ 11,123.45

3 个答案:

答案 0 :(得分:9)

该代码永远不会起作用 - 因为Amount是一个字符串,而不是一个数字。货币格式仅适用于数字

例如:

decimal amount = 11123.45m;
Console.WriteLine(string.Format("{0:c}", amount);

(请注意,对货币使用 double 几乎总是一个坏主意,因为double不能完全代表许多十进制数。对于财务数据,Decimal是更合适的类型。)

答案 1 :(得分:2)

这是因为Amount是一个字符串而不是数字。

答案 2 :(得分:0)

这适用于我的情况

string Amount = "11123.45";
amount2 = amount.AsDecimal();
string.Format("{0:c}", @amount2)