C# 为什么如果结果正确,它告诉我这是错误的
该程序以十进制方式对随机数进行运算,使用ran.next获得和,并存储在变量sum1a(对于第一个数字)和sum2a(对于第二个数字)中,并打印在“Suma1.Text”中;操作员需要在名为“Resultado”的文本框中捕获结果,如何将名称“Resultado1”存储在变量result1中,然后与sum1a和sum2a之和进行比较,并存储在total1中,以与result1进行比较,如果total1与result1匹配,则当没有匹配时,必须打印“Correcto”或“Incorrecto”,但有时即使结果正确,也表示为“Incorrecto” [计算器与程序][1]C# 为什么如果结果正确,它告诉我这是错误的,c#,C#,该程序以十进制方式对随机数进行运算,使用ran.next获得和,并存储在变量sum1a(对于第一个数字)和sum2a(对于第二个数字)中,并打印在“Suma1.Text”中;操作员需要在名为“Resultado”的文本框中捕获结果,如何将名称“Resultado1”存储在变量result1中,然后与sum1a和sum2a之和进行比较,并存储在total1中,以与result1进行比较,如果total1与result1匹配,则当没有匹配时,必须打印“Correcto”或“Incorrecto”,但
namespace Sumas_punto_decimal_prueba
{
public partial class Form1 : Form
{
double sum1a, sum2a;
string num1a, num2a;
double total1;
double result1;
public Form1()
{
InitializeComponent();
}
private void Generar_Click(object sender, EventArgs e)
{
//LIMPIADOR
foreach (Control ctrl in this.Controls)
{
if (ctrl is TextBox)
{
TextBox text = ctrl as TextBox;
text.Clear();
}
}
Random ran = new Random();
//SUMA 1
sum1a = ran.Next(100 , 10000) / 100.00;
sum2a = ran.Next(100 , 10000) / 100.00;
num1a = sum1a.ToString("##.#0");
num2a = sum2a.ToString("##.#0");
if (sum1a < 10 && sum2a < 10)
{
Suma1.Text = " 0" + num1a + "\r\n +0" + num2a + "\r\n¯¯¯¯¯¯¯";
}
else if (sum1a < 1 && sum2a < 1)
{
Suma1.Text = " 00" + num1a + "\r\n +00" + num2a + "\r\n¯¯¯¯¯¯¯";
}
else if (sum1a < 10 && sum2a < 1)
{
Suma1.Text = " 0" + num1a + "\r\n +00" + num2a + "\r\n¯¯¯¯¯¯¯";
}
else if (sum1a < 1 && sum2a < 10)
{
Suma1.Text = " 00" + num1a + "\r\n +0" + num2a + "\r\n¯¯¯¯¯¯¯";
}
else if (sum1a < 10)
{
Suma1.Text = " 0" + num1a + "\r\n +" + num2a + "\r\n¯¯¯¯¯¯¯";
}
else if (sum1a < 1)
{
Suma1.Text = " 00" + num1a + "\r\n +" + num2a + "\r\n¯¯¯¯¯¯¯";
}
else if (sum2a < 10)
{
Suma1.Text = " " + num1a + "\r\n +0" + num2a + "\r\n¯¯¯¯¯¯¯";
}
else if (sum2a < 1)
{
Suma1.Text = " " + num1a + "\r\n +00" + num2a + "\r\n¯¯¯¯¯¯¯";
}
else if (sum2a < 1)
{
Suma1.Text = " " + num1a + "\r\n +00" + num2a + "\r\n¯¯¯¯¯¯¯";
}
else
{
Suma1.Text = " " + num1a + "\r\n +" + num2a + "\r\n¯¯¯¯¯¯¯";
}
}
private void Calificar_Click(object sender, EventArgs e)
{
//SUMA NUMERO 1
double.TryParse(Resultado1.Text, out result1);
total1 = sum1a + sum2a;
if (result1 == total1)
{
Validacion1.Text = "Correcto";
}
else
{
Validacion1.Text = "Incorrecto. \r\nEl resultado es: " + total1;
}
}
}
谢谢。uwu可能是因为它们根本不相等, 可能并不是所有的数字都是在一个月内记录下来的。比较 而不是字符串,并使用打印操作查看错误所在的位置
if (string == string)
{
// Ganastes!
}
if("159.73" == "159.73")
{
// Correct!
}
您的问题似乎既与压缩有关,又与不正确的结果有关。如果你只把问题的焦点放在错误的结果上,可能会更容易得到答案。您可以使用CodeReviewSE进行压缩位,因为这里没有主题。可能会添加一些测试用例?
,但有时不
,您需要更加具体。这看起来像一个复杂的开关/用例。该控制结构在几年前就被赋予了与C版本匹配的模式。所以你可以把它变成更可读的东西为了判断出什么地方出了问题,我们需要知道使用什么值会得到什么结果。与其嵌套if语句,不如执行else if
,使代码更具可读性。请阅读以下内容:
if (string == string)
{
// Ganastes!
}
if("159.73" == "159.73")
{
// Correct!
}