将 Int 更改为字符串然后格式化字符串 [重复]

Posted

技术标签:

【中文标题】将 Int 更改为字符串然后格式化字符串 [重复]【英文标题】:Changing a Int to a String then Formatting the String [duplicate] 【发布时间】:2018-02-07 00:42:15 【问题描述】:

<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 *** issue

【问题讨论】:

toLocaleString 可用于其他语言,而不是 C#,除非您实现扩展方法。 另外,我不认为 ToLocaleString 将是一个字符串上的方法,而是一个 int 因为它甚至会对像“hello world!”这样的字符串做什么? @dominic-gozza 您能否将答案标记为已接受或告诉我们缺少什么? 【参考方案1】:

我看到您想显示金额,您应该为此使用货币 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

【讨论】:

【参考方案2】:

@Model.CreditLimit - 这是整数

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

现在您正在尝试执行ToLocaleString(),这显然是错误

"字符串不包含"ToLocaleString"的定义

要执行您想要归档的操作,请尝试以下解决方案:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

article 很好地概述了可用的不同格式类型。听起来你想要Numeric Format Specifier。你会这样使用它

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

【讨论】:

以上是关于将 Int 更改为字符串然后格式化字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C#:从字符串中提取数字,然后将逗号(,)更改为点(。)

将数字格式从 10000 更改为 10,000 android [重复]

Dart - 如何将 yyyy-MM-dd 中的简单日期字符串的格式更改为 dd-MM-yyyy

我如何将queryString值更改为(int)[重复]

如何将我的字符串更改为 int 以便我们提供给套接字

在 Swift 中将 JSON 更改为字符串 [重复]