经过测试发现这个是和系统语言有关,如果直接使用{0:C}进行转换时会跟系统语言有关,中文则显示人民币,老美就是美元。

那么在使用时,直接增加区域配置:string.Format(new System.Globalization.CultureInfo("en-US"),"{0:C}",123.12)

其它解决办法:

1、通过系统语言

区域和语言选项,找到英语(美国)设置

2、代码配置

int i = 125545.12;
CultureInfo c = new CultureInfo(0x0409);
string str = i.ToString("C", c);
//或:
CultureInfo c = new CultureInfo("en-US");
string str = i.ToString("C", c);
05-11 11:25