<p class="card"> Credit Limit: <b style="color: #00e500 ;"> $@Model.CreditLimit.ToString().ToLocaleString()</b> </p>
我正在使用ToString()
将Int更改为String然后我尝试使用ToLocaleString()
格式化我得到的数字。数字看起来像这样:80567。我试图将其格式化为:80,567。
我得到的错误是“字符串不包含”ToLocaleString“的定义
思想?
编辑:要关闭此问题。找到我的错误所在的位置。如果您对该主题有任何疑问,请参阅此链接:Link to StackOverFlow issue
答案 0 :(得分:3)
我看到你要显示金额,你应该使用货币NumberFormatInfo。首先获取当前CultureInfo或为特定语言国家创建它:
function getAllCategories()
{
foreach ($this->_prop as $cate)
{
echo $cate[0];
foreach ($cate as $type)
{
echo $type[0];
}
}
}
然后用它来格式化你的号码:
var culture = Thread.CurrentThread.CurrentCulture;
// or
var culture = new CultureInfo("en-US");
“c”代表“货币”,您可以在NumberFormatInfo的文档中看到其他可能的选项。
答案 1 :(得分:0)
那是因为var creditLimit = 100;
var creditLimitFormatted = creditLimit.ToString("c", culture);
(int
)类不是可格式化的,也就是说,它的表示不依赖于文化。您必须推出格式代码。
答案 2 :(得分:0)
这个article概述了可用的不同格式类型。听起来你想要Numeric Format Specifier。您可以像这样使用它
int intValue = 123456789;
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture));
// Displays 123,456,789.0
答案 3 :(得分:0)
@Model.CreditLimit
- 这是整数
@Model.CreditLimit.ToString()
- 这是一个字符串
现在您正尝试从错误
中清楚地执行ToLocaleString()
“字符串不包含”ToLocaleString“的定义
要执行您要归档的内容,请尝试以下解决方案:
String.Format("{0:n}", @Model.CreditLimit);
//输出:80,567.00
string.Format("{0:n0}", @Model.CreditLimit);
//输出:80567