我的表单中有文本框,其中包含数量的数字。然后在textchanged事件中,该号码被放置在具有货币值的标签的文本属性中(例如:$ 4.00)。在我的按钮单击事件中,我试图添加标签中的所有值。使用以下代码时,tryparse每次都失败
int num1;
string text = lbl85x11bwsub.Text;
if (int.TryParse(text, out num1))
{
MessageBox.Show(num1.ToString()); //testing
}
else
{
MessageBox.Show("it failed");
}
但如果我使用文本框的文本属性尝试相同的操作,它就可以工作。
int num2;
if (int.TryParse(txt85x11bw.Text, out num2))
{
MessageBox.Show(num2.ToString());
}
else
{
MessageBox.Show("it failed");
}
答案 0 :(得分:12)
@Frederik Gheysels给你几乎完整的答案,除了一件小事。在这种情况下,您应该使用NumberStyles.Currency,因为您的数字不仅可以不是整数,还包含千位和小数分隔符。虽然NumberStyles.AllowCurrencySymbol只关心货币符号。另一方面,NumberStyles.Currency is a composite number style.几乎可以允许所有其他分隔符。
所以,这个表达式可能会起作用:
Decimal.TryParse(text,
NumberStyles.Currency,
CultureInfo.CurrentCulture,
out result);
答案 1 :(得分:6)
尝试
Decimal.TryParse(text,
NumberStyles.Currency,
CultureInfo.CurrentCulture,
out result);
代替。 您要解析的数字是:
答案 2 :(得分:0)
使用NumberStyles.Currency
代替NumberStyles.AllowCurrencySymbol