【问题标题】:Problem to add "," in my windows forms calculator (c#) [closed]在我的 Windows 表单计算器(c#)中添加“,”的问题[关闭]
【发布时间】:2021-01-12 13:24:55
【问题描述】:

我只是想在 visula studio (c#) 上创建一个带有 Windows 窗体的计算器,一切都很好,但是当我尝试添加逗号时。我没有正确的结果。 例如,如果我尝试使:7.5 -4.5 = 我得到答案 30。

你能帮我吗?我是 c# 的新手,我真的很想学习这门语言。

这是部分:

    private void button3_Click(object sender, EventArgs e)
    {
        double fn;
        double sn;
        double r=0;
        //----------------------------------------------------------------
        double.TryParse(label_firstNun.Text, out fn);
        double.TryParse(label1.Text, out sn);
        //------------------------------------
        if (label_Operator.Text=="+")
        {
            r = fn + sn;
        }
        //-----------------------------------
        if (label_Operator.Text == "-")
        {
            r = fn - sn;
        }
        //-----------------------------------
        if (label_Operator.Text == "*")
        {
            r = fn * sn;
        }
        //-----------------------------------
        if (label_Operator.Text == "%")
        {
            r = fn / sn;
        }
        //-----------------------------------
        label1.Text = r.ToString();
        label_Operator.Text = "";
        label_firstNun.ResetText();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.label1.Text = this.label1.Text + ".";
    }
}

非常感谢您的帮助。

【问题讨论】:

  • 您将数据视为字符串。数据和格式应该分开 - 将您的值存储在正确的数据类型中,您将更容易添加功能。计算结果和显示结果是两个独立的操作 - 我假设问题是您要添加千位分隔符?您能否在您的问题中添加一些关于实际问题的细节?
  • 我有一个答案,但触发快乐的模组已经关闭了这个问题。您需要的是一个小数点,而不是字符'.'。要获得正确的小数点字符,请使用char a = Convert.ToChar(Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator);

标签: c# .net calculator


【解决方案1】:

听起来您的语言环境不使用. 作为小数分隔符。为您的文化使用正确的小数分隔符,或使用其他文化来解析数字(例如double.TryParse(label_firstNun.Text, NumberStyles.Number, CultureInfo.InvariantCulture, out fn))。

【讨论】:

    【解决方案2】:

    您必须将 this.label1.Text 转换为数字,而不仅仅是使用文本。尝试谷歌搜索它实际上很容易。

    【讨论】:

    • OP 正在转换double.TryParse(label1.Text, out sn);。你的帖子的其余部分,即“试着用谷歌搜索它实际上很容易。”没有帮助。
    • 好吧,我只是对此发表了自己的看法,认为这会有所帮助。
    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    相关资源
    最近更新 更多