[英]String.Format in C# not returning modified int value
我想在值中使用逗號分隔符返回一個int值。
12345將被退回12,345
以下代碼有效:
int myInt = 1234567;
MessageBox.Show(string.Format("My number is {0}", myInt.ToString("#,#")));
按預期顯示12,345。
雖然以下代碼不起作用,但從我正在閱讀的內容中,應該可以正常工作:
int myInt = 1234567;
MessageBox.Show(string.Format("My number is {0:#,#}", myInt.ToString()));
顯示12345。
你能幫我理解為什么第二組代碼不起作用嗎?
謝謝
你不應該在格式之前ToString
int。 嘗試這個:
MessageBox.Show(string.Format("My number is {0:#,#}", myInt));
在格式化程序有機會應用格式之前,您將轉換為字符串。 你在找
MessageBox.Show(string.Format("My number is {0:#,#}", myInt));
myInt.ToString()
是多余的,因為您使用的是String.Format()
。 String.Format
是提供一堆對象,它會為你創建一個字符串。 無需將其轉換為string
。
為了使數字格式反映您需要為其提供實際數值類型而不是類型為string
的數值。
當您為Format
方法指定一個string
它不會考慮任何數字格式,因為它已經是一個string
類型。
int myInt = 1234567;
MessageBox.Show(string.Format("My number is {0:#,#}", myInt));
當您在第二個示例中使用格式字符串“inline”時,參數的輸入必須是原始值(即int,double或其他),以便格式字符串可以對其執行一些有用的操作。
因此,從第二次調用中省略ToString將執行您想要的操作:
int myInt = 1234567;
MessageBox.Show(string.Format("My number is {0:#,#}", myInt));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.