使用ToString()格式显示整数ASP.net

时间:2014-10-06 08:32:06

标签: c# asp.net string-formatting tostring

我遇到了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,这不是正确的整数格式。

3 个答案:

答案 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