在较长的数字之间添加逗号
本文关键字:添加 之间 数字 | 更新日期: 2023-09-27 18:17:07
我试图自动在长数字之间放置逗号,但到目前为止还没有成功。我可能犯了一个非常简单的错误,但到目前为止我无法弄清楚。这是我目前拥有的代码,但由于某种原因,我123456789作为输出。
string s = "123456789";
string.Format("{0:#,###0}", s);
MessageBox.Show(s); // Needs to output 123,456,789
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
的重载。
试试这个:
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);
这
应该有效(您需要String.Format()
传递一个数字,而不是另一个String
(:
Int32 i = 123456789;
String s = String.Format("{0:#,###0}", i);
MessageBox.Show(s);
但是考虑一下您正在使用的格式字符串...正如其他人所建议的那样,有更干净的选择可用。
查看 MSDN:标准数字格式字符串上的数字格式信息,或者(可选(自定义格式字符串:自定义数字格式字符串。
对于自定义数字格式:
","字符既用作组分隔符,也用作数字缩放说明符。
double value = 1234567890;
Console.WriteLine(value.ToString("#,#", CultureInfo.InvariantCulture));
// Displays 1,234,567,890
Console.WriteLine(value.ToString("#,##0,,", CultureInfo.InvariantCulture));
// Displays 1,235
你的代码有很多错误,很难描述每一个细节。
请看这个例子:
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();
}
}
}