在计算文本框时删除“$”

本文关键字:删除 计算 文本 | 更新日期: 2023-09-27 18:36:05

我正在尝试在用户关闭我的应用程序后显示一个消息框。此消息框让用户根据其购买情况了解某些内容。我的问题是我的程序在读取文本框中的"$"时崩溃。这是我目前所处的位置:

    private void exitButton_Click(object sender, EventArgs e)
    {
        if
        (MessageBox.Show("Are you sure you want to exit?",
        "Confirm exit...",
        MessageBoxButtons.YesNo,
        MessageBoxIcon.Question,
        MessageBoxDefaultButton.Button2) == DialogResult.Yes)
        {
            decimal Discount;
            Discount = decimal.Parse(postDiscountCostTextBox.Text);
            if (Discount <= 999.99m)
            {
                MessageBox.Show("This amount qualifies for 'A-100' frequent flier miles.",
                    "",
                    MessageBoxButtons.OK);
            }
        }

        {
            this.Close();
        }
    }

当我从文本框中删除"$"时,该程序运行良好,但是,它需要在最终产品中存在。任何帮助将不胜感激。

在计算文本框时删除“$”

请改用这个:

Discount = decimal.Parse(postDiscountCostTextBox.Text.Replace("$", ""));

如果系统上的当前区域性具有货币的美元符号以外的符号,该怎么办?

正确的方法是指定"Currency"NumberStyles并使用TryParse()而不是Parse():

            decimal Discount;
            if (decimal.TryParse(postDiscountCostTextBox.Text, System.Globalization.NumberStyles.Currency, null, out Discount))
            {
                if (Discount <= 999.99m)
                {
                    MessageBox.Show("This amount qualifies for 'A-100' frequent flier miles.",
                        "",
                        MessageBoxButtons.OK);
                }
            }
            else
            {
                // ... invalid value in textbox ...
                // Dipslay a MessageBox?
            }