C# 单利计算器开关报错
C# Simple interest calculator switch error
我正在尝试制作一个单利计算器,其中一个人输入他们想要计算的数字 (1 - 4),然后输入给定的数字并获得缺失的变量。
代码:
using System;
using System.Convert;
public class InterestCalculator {
static public void Main(string [] args) {
int final, initial, rate, time, input;
Console.WriteLine("What do you want to calculate? \n 1. Final amount after interest. \n 2. Initial amount after interest. \n 3. Interest rate. \n 4. Time passed");
input = Convert.ToInt32(Console.ReadLine());
switch (input){
case 1:
Console.WriteLine("Enter the initial amount.");
initial = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the interest rate.");
rate = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the time passed.");
time = Convert.ToInt32(Console.ReadLine());
final = initial * rate * time;
Console.WriteLine("$" + final + " is the final amount after interest.");
break;
case 2:
Console.WriteLine("Enter the final amount.");
final = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the interest rate.");
rate = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the time passed.");
time = Convert.ToInt32(Console.ReadLine);
initial = final/(rate * time);
Console.WriteLine("$" + initial + " is the initial amount before interest.");
break;
case 3:
Console.WriteLine("Enter the final amount.");
final = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the initial amount.");
initial = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the time passed.");
time = Convert.ToInt32(Console.ReadLine);
rate = final/(initial * time);
Console.WriteLine("%" + initial + " per time cycle is the interest rate");
break;
case 4:
Console.WriteLine("Enter the final amount.");
final = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the initial amount.");
initial = Convert.ToInt32(Console.ReadLine);
Console.WriteLine("Enter the interest rate.");
rate = Convert.ToInt32(Console.ReadLine());
time = final/(initial * rate);
Console.WriteLine(initial + " cycles is the amount of time passed.");
break;}
default:
Console.WriteLine("Invalid input.");
}
}
}
我在编译过程中不断收到这个错误(使用单声道):
error CS1502: The best overloaded method match for System.Convert.ToInt32(bool) has some invalid arguments
error CS1503: Argument `#1' cannot convert `method group' expression to type `bool'
error CS1502: The best overloaded method match for `System.Convert.ToInt32(bool)' has some invalid arguments
error CS1503: Argument `#1' cannot convert `method group' expression to type `bool'
error CS1502: The best overloaded method match for `System.Convert.ToInt32(bool)' has some invalid arguments
error CS1503: Argument `#1' cannot convert `method group' expression to type `bool'
嗯,您的 Console.ReadLine()
之一没有括号。所以你传递的是方法而不是调用它。
大部分地方你只有
Console.ReadLine instead of Console.ReadLine()
签入代码。例如-
案例二
time = Convert.ToInt32(Console.ReadLine);
更正所有这些行。
另外,建议先将输入获取到局部变量,然后尝试转换。
我正在尝试制作一个单利计算器,其中一个人输入他们想要计算的数字 (1 - 4),然后输入给定的数字并获得缺失的变量。
代码:
using System;
using System.Convert;
public class InterestCalculator {
static public void Main(string [] args) {
int final, initial, rate, time, input;
Console.WriteLine("What do you want to calculate? \n 1. Final amount after interest. \n 2. Initial amount after interest. \n 3. Interest rate. \n 4. Time passed");
input = Convert.ToInt32(Console.ReadLine());
switch (input){
case 1:
Console.WriteLine("Enter the initial amount.");
initial = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the interest rate.");
rate = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the time passed.");
time = Convert.ToInt32(Console.ReadLine());
final = initial * rate * time;
Console.WriteLine("$" + final + " is the final amount after interest.");
break;
case 2:
Console.WriteLine("Enter the final amount.");
final = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the interest rate.");
rate = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the time passed.");
time = Convert.ToInt32(Console.ReadLine);
initial = final/(rate * time);
Console.WriteLine("$" + initial + " is the initial amount before interest.");
break;
case 3:
Console.WriteLine("Enter the final amount.");
final = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the initial amount.");
initial = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the time passed.");
time = Convert.ToInt32(Console.ReadLine);
rate = final/(initial * time);
Console.WriteLine("%" + initial + " per time cycle is the interest rate");
break;
case 4:
Console.WriteLine("Enter the final amount.");
final = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the initial amount.");
initial = Convert.ToInt32(Console.ReadLine);
Console.WriteLine("Enter the interest rate.");
rate = Convert.ToInt32(Console.ReadLine());
time = final/(initial * rate);
Console.WriteLine(initial + " cycles is the amount of time passed.");
break;}
default:
Console.WriteLine("Invalid input.");
}
}
}
我在编译过程中不断收到这个错误(使用单声道):
error CS1502: The best overloaded method match for System.Convert.ToInt32(bool) has some invalid arguments
error CS1503: Argument `#1' cannot convert `method group' expression to type `bool'
error CS1502: The best overloaded method match for `System.Convert.ToInt32(bool)' has some invalid arguments
error CS1503: Argument `#1' cannot convert `method group' expression to type `bool'
error CS1502: The best overloaded method match for `System.Convert.ToInt32(bool)' has some invalid arguments
error CS1503: Argument `#1' cannot convert `method group' expression to type `bool'
嗯,您的 Console.ReadLine()
之一没有括号。所以你传递的是方法而不是调用它。
大部分地方你只有
Console.ReadLine instead of Console.ReadLine()
签入代码。例如-
案例二
time = Convert.ToInt32(Console.ReadLine);
更正所有这些行。
另外,建议先将输入获取到局部变量,然后尝试转换。