为什么我的C#计算器应用程序不起作用?

时间:2013-12-12 01:06:24

标签: c# winforms calculator

所以出于某种原因,它添加数字很好,除了当我尝试添加小数...例如...如果我输入2 + 2它给我4,这是正确的但是如果我键入 2 + 1.2,而不是在文本框上显示3.2,它显示14,所以它将1.2作为12 ...它不计算“。” dot ...代码很长,所以我做了一个带有相同问题的样本......

  public partial class Form1 : Form
{
    double num1, num2, answer;
    string add, Op;
    public Form1()
    {
        InitializeComponent();
    }

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

    private void button2_Click(object sender, EventArgs e)
    {
        textBox1.Text = textBox1.Text + ("2");
    }

    private void button5_Click(object sender, EventArgs e)
    {
        textBox1.Text = textBox1.Text + (".");
    }

    private void button4_Click(object sender, EventArgs e)
    {
        num1 = Convert.ToDouble(textBox1.Text);
        textBox1.Text = "";
        Op = "add";
    }

    private void button3_Click(object sender, EventArgs e)
    {
        num2 = Convert.ToDouble(textBox1.Text);
        switch (Op)
        { 
            case "add":
        answer = num1 + num2;
        textBox1.Text = Convert.ToString(answer);
        break; 
        }
    }

}

1 个答案:

答案 0 :(得分:4)

所以我创造了这个;

using System;

namespace ConsoleApplication1
{
class Program
{
    static void Main(string[] args)
    {
        var num1 = Convert.ToDouble("2");
        var num2 = Convert.ToDouble("1.2");
        var answer = num1 + num2;
        Console.WriteLine(Convert.ToString(answer));
        Console.ReadKey();
    }
}
}

它确实有用。

现在如果你改变了

 var num2 = Convert.ToDouble("1.2");

 var num2 = Convert.ToDouble("1,2");

逗号,它会显示与您相同的结果

您可以检查自己的本地化设置,并确保“。” (点)是计算机的小数符号/点? (控制面板)或如果您喜欢运行此项并单击“其他设置...”按钮

  C:\Windows\System32\rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0