在较长的数字之间添加逗号[重复]

Posted

技术标签:

【中文标题】在较长的数字之间添加逗号[重复]【英文标题】:Adding comma between longer numbers [duplicate] 【发布时间】:2013-06-01 05:13:55 【问题描述】:

我正在尝试自动将逗号放在长数字之间,但到目前为止没有成功。我可能犯了一个非常简单的错误,但到目前为止我无法弄清楚。这是我目前拥有的代码,但由于某种原因,我得到了 123456789 作为输出。

    string s = "123456789";
    string.Format("0:#,###0", s);
    MessageBox.Show(s); // Needs to output 123,456,789

【问题讨论】:

您缺少,但也可以将N 用于一般数字格式。此外,您的输入是字符串,而不是数字。 如果您查看格式字符串中的每个字符,您能告诉我每个字符的作用吗? 我认为你需要先添加一个大括号。 我不知道发生了什么,但删除括号不是解决方案。 它已经发布了,这里有几个links 和here 我相信它会有所帮助 【参考方案1】:
var input = 123456789;

// these two lines amount to the same thing
Console.WriteLine(input.ToString("N0"));
Console.WriteLine(string.Format("0:N0", input));

如果根据您的问题,您需要以string 开头:

var stringInput = "123456789";
var input = int.Parse(stringInput);

// these two lines amount to the same thing
Console.WriteLine(input.ToString("N0"));
Console.WriteLine(string.Format("0:N0", input));

在解析/格式化时,您可能还需要考虑文化。查看采用IFormatProvider 的重载。

【讨论】:

【参考方案2】:

试试这个:

string value = string.Format("0:#,###0", 123456789);

在您的代码中,您缺少格式字符串中的初始 ,然后数字格式选项适用于数字,而您的 s 是一个字符串。 您可以使用int.Parse 将字符串转换为数字:

int s = int.Parse("123456789");
string value = string.Format("0:#,###0", 123456789);
MessageBox.Show(value); 

【讨论】:

【参考方案3】:

这应该可行(您需要传递 String.Format() 一个数字,而不是另一个 String):

Int32 i = 123456789;
String s = String.Format("0:#,###0", i);
MessageBox.Show(s);

但请考虑您正在使用的格式字符串...正如其他人所建议的那样,有更简洁的选项可用。

【讨论】:

这行得通。输入总是一个字符串,因为它需要从外部源加载。我将其转换为 Int32,使用您的代码,然后将其转换回字符串。这行得通。我会尽量让它更干净,但仍然非常感谢您的帮助!【参考方案4】:

查看 MSDN 上的数字格式信息:Standard Numeric Format Strings,或可选地查看自定义格式字符串:Custom Numeric Format Strings。

对于自定义数字格式:

“,”字符既用作组分隔符又用作数字缩放说明符。

double value = 1234567890;
Console.WriteLine(value.ToString("#,#", CultureInfo.InvariantCulture));
// Displays 1,234,567,890      
Console.WriteLine(value.ToString("#,##0,,", CultureInfo.InvariantCulture));
// Displays 1,235   

【讨论】:

【参考方案5】:

你的代码有很多错误,很难描述每一个细节。

看这个例子:

namespace ConsoleApplication1

  using System;

  public class Program
  
    public static void Main()
    
      const int Number = 123456789;
      var formatted = string.Format("0:#,###0", Number);

      Console.WriteLine(formatted);
      Console.ReadLine();
    
  

【讨论】:

以上是关于在较长的数字之间添加逗号[重复]的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] 350. 两个数组的交集 II

jQuery:我可以在较长的 $.ajax 请求待处理时发送和接收 $.ajax 响应吗?

在C#中将逗号添加到整数[重复]

如何在随机生成的数字中添加逗号 C# winforms [重复]

如何使用 SwiftUI 显示纯数字?文本不断添加逗号[重复]

中断一个非常长的睡眠功能[重复]