我遇到了ToString()的问题。我想从中显示我的整数:
150000
对此:
150 000
以下是我的尝试:
string myNumber = Convert.ToInt64(input_value.Text).ToString("D");
string myNumber
是我将与标签关联的变量,用于显示用户输入的值(input_value
)。该值为<asp:TextBox>
。最后,我想为每个3位数添加一些空格以使值更清晰。
在ASP.net中是否有其他解决方案可以做同样的事情?因为这个似乎不起作用。
注意:我也尝试使用[...].ToString("N1");
并且效果很好,但我不想要显示结果.0
中的最后一个150 000.0
,这不是正确的整数格式。
答案 0 :(得分:5)
您可以使用NumberFormatInfo
作为千位分隔符创建自定义" "
:
var formatInfoWithSpaceGroupSep = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
formatInfoWithSpaceGroupSep.NumberGroupSeparator = " ";
formatInfoWithSpaceGroupSep.NumberDecimalDigits = 0; // or "N0" instead of "N" below
Console.Write(num.ToString("N", formatInfoWithSpaceGroupSep)); //123 234 000
您必须使用支持组分隔符的N
format specifier,而不是D
。
答案 1 :(得分:2)
抱歉poluate。我发现了我的问题。让我解释一下:
我在N1
格式化,1
意思&#34; 1位数字后面的逗号&#34;中没有得到。所以我只需要将格式字符串设置为n0
。
答案 2 :(得分:0)
您可以使用#符号指定结果集中带空格分隔符的位数:
string num = Convert.ToInt64(input_value.Text).
ToString("# ### ### ### ### ### ###").
Trim();
//Output 150 000 and covers any Int64 digit in input_value.Text