2017-08-29 134 views
0

<p class="card"> Credit Limit: <b style="color: #00e500 ;"> [email protected]().ToLocaleString()</b> </p>更改诠释为一个字符串,然后格式化字符串

我改变一个Int使用ToString()然后我试图格式化我正在使用ToLocaleString()数字的字符串。数字看起来像这样:80567.我试图格式化它看起来像这样:80,567。

我得到的错误是“字符串不包含一个定义‘的toLocaleString’

思考

编辑:将有这个问题,关闭发现在我的错误居住,请参考此链接。如果你有关于这个专题的任何问题:Link to StackOverFlow issue

+1

的toLocaleString在其他语言的版本,不C#,除非你实施扩展方法。 –

+1

另外,我不认为ToLocaleString会是一个字符串的方法,而是一个int,因为它甚至会为像“hello world!”这样的字符串做些什么。 ? –

+0

@ dominic-gozza能否请您将答案标记为已接受或告诉我们缺少的是什么? –

回答

3

我看到你想要显示的金额,你应该使用货币的NumberFormatInfo对于这第一个获得当前的CultureInfo或创建特定语言的国家:

var culture = Thread.CurrentThread.CurrentCulture; 
// or 
var culture = new CultureInfo("en-US"); 

然后用它来格式化您的号码:

var creditLimit = 100; 
var creditLimitFormatted = creditLimit.ToString("c", culture); 

的“C”代表“货币”,可以看到NumberFormatInfo文档中其他可能的选择。

Formatting Numeric Data for a Specific Culture

0

这是因为intInt32)类不formattable,也就是说,它表示不依赖于文化,例如。你必须推出你的格式化代码。

0

这个article给出了可用的不同格式类型的一个很好的概述。这听起来像你想Numeric Format Specifier。你会使用这样

int intValue = 123456789; 
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture)); 
// Displays 123,456,789.0 
0

@Model.CreditLimit - 这是整数

@Model.CreditLimit.ToString() - 这是一个字符串

你现在正在试图执行ToLocaleString()从错误

其中明确

“字符串不包含”ToLocaleString“的定义

要做到要存档请尝试以下解决方案是什么:

String.Format("{0:n}", @Model.CreditLimit); //输出:80,567.00

string.Format("{0:n0}", @Model.CreditLimit); //输出:80567

相关问题