我試圖在逗號之間自動添加逗號,但至今沒有成功。我可能犯了一個非常簡單的錯誤,但到目前爲止我無法弄清楚。這是我目前的代碼,但由於某種原因,我得到123456789作爲輸出。在較長的數字之間添加逗號
string s = "123456789";
string.Format("{0:#,###0}", s);
MessageBox.Show(s); // Needs to output 123,456,789
我試圖在逗號之間自動添加逗號,但至今沒有成功。我可能犯了一個非常簡單的錯誤,但到目前爲止我無法弄清楚。這是我目前的代碼,但由於某種原因,我得到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
的超負荷。
這工作,謝謝! –
看格式化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
試試這個:
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);
但考慮格式字符串中,正在使用......正如其他人所暗示的那樣,有更清潔的選項可用。
這工作。輸入始終是一個字符串,因爲它需要從外部源加載。我將它轉換爲Int32,使用您的代碼,然後將其轉換回字符串。這工作。我會盡量讓它更清潔,但仍然非常感謝您的幫助! –
你的代碼有太多錯誤,所以很難描述每一個細節。
請看下面的例子:
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();
}
}
}
你錯過了''{,也可以只使用'N'一般的數字格式。另外,你的輸入是一個字符串,而不是一個數字。 –
如果你看格式字符串中的每個字符,你能告訴我每個字符都做什麼嗎? – Gabe
您正在將格式應用於's',但您必須將其分配回's'才能在'MessageBox'中正確顯示。你正在失去'string.Format()'的輸出。 –