I have a school assignment to make a basic calculator. I'm almost done but I can't understand why the program says error (felinmatning in Swedish) when the user puts a number containing a dot (example 3.2) when the number 3,2 works.
To clarify, I want the calculator to accept 3.2 and 3,2.
My code (sorry for swedish comments):
namespace ConsoleApp1
{
class Program
{
// En list där nummrena förvaras
private static int runda = 2;
static void Main(string[] args)
{
// En list där nummrena förvaras
List<double> Numbers = new List<double>();
string Method = "";
// Main loop, kör miniränkaren om och om igen
while (true)
{
loop:
try
{
// Ta user input på först nummret, lägger till i "Numbers" listan
Numbers.Add(ConvStr(TakeUserInput("First Number:")));
}
catch
{
Console.Clear();
Console.WriteLine("Felinmatning");
Console.ReadLine();
goto loop;
}
Console.Clear();
looop:
try
{
// Tar user input på andra talet och lägger till i listan
Numbers.Add(ConvStr(TakeUserInput("Second Number:")));
}
catch
{
Console.Clear();
Console.WriteLine("Felinmatning");
Console.ReadLine();
goto looop;
}
Console.Clear();
while(!CheckMethod(Method))
{
// Ta user input
Method = TakeUserInput("Välj Räknesätt:");
Console.Clear();
Console.WriteLine("Felinmatning");
}
Console.Clear();
// Calculatar och skriver ut skiten
Console.WriteLine("Resultat:");
Console.WriteLine(Calc(Numbers, Method));
Console.WriteLine("Tryck Enter för att räkna igen");
Console.ReadLine();
// Cleara listan av nummer, förbered för nya.
Numbers.Clear();
}
}
private static string TakeUserInput(string DisplayText)
{
Console.Write(DisplayText);
return Console.ReadLine();
}
private static bool CheckMethod(string method)
{
switch(method)
{
case "+":
break;
case "-":
break;
case "*":
break;
case "/":
break;
default:
return false;
}
return true;
}
private static double Calc(List<double> input, string method)
{
double Answer = 0;
switch (method)
{
case "+":
Answer = input[0] + input[1];
break;
case "-":
Answer = input[0] - input[1];
break;
case "*":
Answer = input[0] * input[1];
break;
case "/":
Answer = input[0] / input[1];
break;
}
return Answer;
}
private static double ConvStr(string input)
{
return Convert.ToDouble(input);
}
}
}