将Int更改为String然后格式化String

时间:2017-08-29 14:00:44

标签: c# html string visual-studio int

<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

4 个答案:

答案 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的文档中看到其他可能的选项。

Formatting Numeric Data for a Specific Culture

答案 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