【问题标题】:Converting int to string with a specific format将 int 转换为具有特定格式的字符串
【发布时间】:2017-04-29 23:06:53
【问题描述】:

我正在尝试转换一个经典的整数值,例如:

2000

变成这样的格式:

2.000,00

我尝试了以下方法:

String.valueOf(input.format());

还有这个方法:

private String getCents(Decimal x){
    String y = String.valueOf(x);
    String z = '.';
    if(y.contains(',')) z = ',';
    y = y.substring(0, y.indexOf(z));
    if(x - Decimal.valueOf(y) == 0)
        return String.valueOf(x.format()) + z + '00';
    else return String.valueOf(x.format());
}

但由于某种原因,字符串类不包含 valueOf 方法。有没有其他方法可以做到这一点?

【问题讨论】:

  • 这个问题在这里有一个确定的答案:stackoverflow.com/questions/105770/…
  • 您确定要查找 C# 吗?你发现的是java
  • @TimSchmelter 哎呀,我认为 c# 中的字符串类可能具有与 Java 中相同的方法... ^^

标签: c# string winforms integer


【解决方案1】:

String 不包含方法valueOf,因为这不是Java,你知道的。 您正在搜索的方法是ToString,它允许格式提供程序作为参数。最简单的方法是定义格式的另一个字符串。

    int i = 2000;
    Console.WriteLine(i.ToString("#,##0.00"));
    Console.ReadLine();

这会做你想做的事。 在ToStringmethod 的文档中阅读有关格式提供程序的更多信息。

【讨论】:

  • 这是否意味着大于 2000 的数字?像20000? 20.000,00 ?
  • 是的,如前所述,阅读 msdn 上的提供程序。我的示例确保数字 froups 由逗号分隔,并且在传递值时有一个 0
【解决方案2】:

鉴于美国文化 这样就可以了:

string.Format(CultureInfo.GetCultureInfo("en-US"), "{0:N}", 2000)

【讨论】:

  • 一会儿我会试试你的解决方案
猜你喜欢
  • 2022-12-25
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
相关资源
最近更新 更多