C# 计算器-c中用逗号分隔的千位分隔符#
} 我用上面的代码制作计算器。我想得到带小数点的结果。我想在中键入1234.1234 文本框,但我无法在文本框中键入1234.1234。我的意思是逗号和十进制值不一致C# 计算器-c中用逗号分隔的千位分隔符#,c#,C#,} 我用上面的代码制作计算器。我想得到带小数点的结果。我想在中键入1234.1234 文本框,但我无法在文本框中键入1234.1234。我的意思是逗号和十进制值不一致 有谁能帮我解决这个问题吗?你必须提供一种使用的文化。成千上万的人在签名。 通常,您希望使用用户当前的区域性 private void TextBox_TextChanged(object sender, EventArgs e) { string value = TextBox.Text.Replace(",", ""); dou
有谁能帮我解决这个问题吗?你必须提供一种使用的文化。成千上万的人在签名。 通常,您希望使用用户当前的区域性
private void TextBox_TextChanged(object sender, EventArgs e)
{
string value = TextBox.Text.Replace(",", "");
double dbl;
if (double.TryParse(value, out dbl))
{
TextBox.TextChanged -= TextBoxTextChanged;
TextBox.Text = string.Format("{0:#,#0}", dbl);
TextBox.SelectionStart = TextBox.Text.Length;
TextBox.TextChanged += TextBoxTextChanged;
}
您必须提供一种使用的文化。成千上万的人在签名。 通常,您希望使用用户当前的区域性
private void TextBox_TextChanged(object sender, EventArgs e)
{
string value = TextBox.Text.Replace(",", "");
double dbl;
if (double.TryParse(value, out dbl))
{
TextBox.TextChanged -= TextBoxTextChanged;
TextBox.Text = string.Format("{0:#,#0}", dbl);
TextBox.SelectionStart = TextBox.Text.Length;
TextBox.TextChanged += TextBoxTextChanged;
}
试试这个:
double.TryParse(value, System.Globalization.NumberStyles.Number, System.Globalization.CultureInfo.CurrentCulture, out dbl)
试试这个:
double.TryParse(value, System.Globalization.NumberStyles.Number, System.Globalization.CultureInfo.CurrentCulture, out dbl)
我不明白为什么要在同一个事件处理程序中分配事件处理程序。。。TextBox.TextChanged+=TextBoxTextChanged;在任何情况下,您都需要使用CultureInfo为特定用户设置数字格式culture@Oscar. 其目的似乎是关闭事件处理程序(
-=
),更改文本,然后将其重新打开(+=
)。这可能是为了停止对TextBox.Text
的赋值,避免无限递归事件。我不明白为什么要在同一个事件处理程序中赋值事件处理程序。。。TextBox.TextChanged+=TextBoxTextChanged;在任何情况下,您都需要使用CultureInfo为特定用户设置数字格式culture@Oscar. 其目的似乎是关闭事件处理程序(-=
),更改文本,然后将其重新打开(+=
)。这大概是为了停止对TextBox.Text
的赋值,避免无限递归事件。对不起,Wertzui,它不起作用。我想打1000.123,但我打不出来!使用上述代码解析字符串“1000.123”确实有效。根据您的文化,结果为1000123或1000.123。对不起,Wertzui,它不起作用。我想打1000.123,但我打不出来!使用上述代码解析字符串“1000.123”确实有效。根据您的文化背景,结果为1000123或1000.123。