我正在尝试在从右到左文本框中编写带有自定义格式的数字(实际上在列表视图中,但无论如何)。这是代码:
NumberFormatInfo nfi = (NumberFormatInfo)
CultureInfo.InvariantCulture.NumberFormat.Clone();
nfi.NumberGroupSeparator = " ";
textbox1.Text = (18700).ToString("#,###",nfi);
而不是18 700
我得到700 18
。我能解决这个问题(得到所需的18 700
)而不是在数字到字符串转换后操纵字符串吗?
答案 0 :(得分:2)
使用no-break space而不是空格。它的字符是C#中的(char)0x00A0
或'\u00A0'
。您也可以使用 Alt + 255 键盘输入。
所以你可以这样设置NumberGroupSeparator
:
nfi.NumberGroupSeparator = "\u00A0";
答案 1 :(得分:0)
我认为你可以做一个小技巧:
textBox1.Text = TurnString((18700).ToString("#,###", nfi));
public static string TurnString(string value)
{
Stack<string> stack = new Stack<string>();
foreach(string a in value.Split(' '))
{
stack.Push(a);
}
string result = string.Empty;
while(stack.Count>0)
{
result += stack.Pop()+' ';
}
return result;
}