public static double increase(double calc1number, double calc1percentage)
double multiplier = Math.Round(1 + (calc1percentage / 100), 2);
Console.WriteLine($"Multiplier used: ×{multiplier}");
return Math.Round(calc1number * multiplier, 2);
public static void increaseExplanation(double calc1number, double calc1percentage)
double newNumber = calc1percentage / 100;
double multiplier = Math.Round(1 + (calc1percentage / 100), 2);
double calc1answer = Math.Round(calc1number * multiplier, 2);
Console.WriteLine($"1. Take {calc1percentage}% and divide it by 100 which gives {newNumber}.\n2. Add 1 to {newNumber} — which represents an increase — to give the multiplier {multiplier}.\n3. Multiply {calc1number} by {multiplier} using a calculator to give the answer {calc1answer}.");
public static double decrease(double calc1number, double calc1percentage)
double multiplier = Math.Round(1 - (calc1percentage / 100), 2);
Console.WriteLine($"Multiplier used: ×{multiplier}");
return Math.Round(calc1number * multiplier, 2);
public static void decreaseExplanation(double calc1number, double calc1percentage)
double newNumber = calc1percentage / 100;
double multiplier = Math.Round(1 - (calc1percentage / 100), 2);
double calc1answer = Math.Round(calc1number * multiplier, 2);
Console.WriteLine($"1. Take {calc1percentage}% and divide it by 100 which gives {newNumber}.\n2. Minus {newNumber} from 1 — which represents a decrease — to give the multiplier {multiplier}.\n3. Multiply {calc1number} by {multiplier} using a calculator to give the answer {calc1answer}.");
public static double function1(double number1, double number2)
return Math.Round((number1 / number2) * 100, 2);
public static double function2(double number1, double number2)
return Math.Round((number2 / number1) * 100, 2);
public static double simple(double calc3number, double calc3percentage, double calc3years)
double interest = Math.Round(calc3number * (calc3percentage / 100) * calc3years, 2);
Console.WriteLine($"Interest: £{interest}");
return calc3number + interest;
public static double compound(double calc3number, double calc3percentage, double calc3years, int calc3times)
double interest = Math.Round(calc3number * (Math.Pow(1 + ((calc3percentage / 100) / calc3times), calc3times * calc3years)), 2);
Console.WriteLine($"Interest: £{interest}");
return calc3number + interest;
public static void Main()
Console.WriteLine("Welcome to Percentage Calculator.");
Console.WriteLine("\nType '1' for percentage increase/decrease calculator.\nType ‘2’ to find out what percentage two numbers are of each other.\nType '3' for interest calculator.");
int mode = Int32.Parse(Console.ReadLine());
if (mode != 1 && mode != 2 && mode != 3)
Console.WriteLine("Please try again.");
Console.WriteLine("Please enter the number you'd like to increase/decrease by a percentage amount.");
calc1number = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please enter a valid number.");
Console.WriteLine("Now please enter the percentage you'd like to increase/decrease your number by.");
calc1percentage = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please enter numbers only.");
goto calc1percentageInput;
Console.WriteLine("Would you like to increase or decrease your number by the percentage amount? Type '+' for increase and '-' for decrease.");
calc1function = Console.ReadLine();
if (calc1function == "+")
calc1answer = increase(calc1number, calc1percentage);
Console.WriteLine($"Answer is: {calc1answer}");
Console.WriteLine("Would you like an explanation for the answer? Type 'Y' for yes and 'N' for no.");
calc1explanation = Console.ReadLine();
if (calc1explanation == "Y" || calc1explanation == "y")
increaseExplanation(calc1number, calc1percentage);
else if (calc1explanation == "N" || calc1explanation == "n")
Console.WriteLine("Please try again.");
goto calc1explanationInput;
else if (calc1function == "-")
calc1answer = decrease(calc1number, calc1percentage);
Console.WriteLine($"Answer is: {calc1answer}");
Console.WriteLine("Would you like an explanation for the answer? Type 'Y' for yes and 'N' for no.");
calc1explanation = Console.ReadLine();
if (calc1explanation == "Y" || calc1explanation == "y")
decreaseExplanation(calc1number, calc1percentage);
else if (calc1explanation == "N" || calc1explanation == "n")
Console.WriteLine("Please try again.");
goto calc1explanationInput;
Console.WriteLine("Please try again.");
Console.WriteLine("Please enter a number.");
calc2number1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please enter a valid number.");
Console.WriteLine("Now please enter the second number.");
calc2number2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please enter numbers only.");
calc2answer1 = function1(calc2number1, calc2number2);
calc2answer2 = function2(calc2number1, calc2number2);
Console.WriteLine($"{calc2number1} is {calc2answer1}% of {calc2number2}.\n{calc2number2} is {calc2answer2}% of {calc2number1}.");
Console.WriteLine("Please enter the original amount.");
calc3number = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please enter a valid number.");
Console.WriteLine("Now please enter the interest percentage.");
calc3percentage = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please enter numbers only.");
goto calc3percentageInput;
Console.WriteLine("Now please enter after how many years you'd like to know the new value.");
calc3years = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please enter numbers only.");
Console.WriteLine("You can not have a negative amount of years. Try again.");
Console.WriteLine("Type 's' for simple interest or 'c' for compound interest.");
calc3function = Console.ReadLine();
if (calc3function == "s")
calc3answer = simple(calc3number, calc3percentage, calc3years);
Console.WriteLine($"The total amount after {calc3years} {calc3years2} at {calc3percentage}% simple interest is £{calc3answer}.");
else if (calc3function == "c")
Console.WriteLine("How many times is the interest rate compounded per year?");
calc3times = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please enter numbers only.");
calc3answer = compound(calc3number, calc3percentage, calc3years, calc3times);
Console.WriteLine($"The total amount after {calc3years} {calc3years2} at {calc3percentage}% compound interest is £{calc3answer}.");
Console.WriteLine("Please try again.");