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

aro*_*ron 2 c# asp.net

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

string Amount = "11123.45";
Literal2.Text = string.Format("{0:c}", Amount);
Run Code Online (Sandbox Code Playgroud)

读取11123.45

它应该是:

$ 11,123.45

Jon*_*eet 9

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

例如:

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

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