所以出于某种原因,它添加数字很好,除了当我尝试添加小数...例如...如果我输入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;
}
}
}
答案 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