I am currently learning Java and my first project is a simple calculator.
For some reason it does not accept decimal numbers that have “.” in them, but does accept “,”
I can use “0,4 + 0,4” but it won’t work with “0.4 + 0.4”
import java.util.Scanner;
class Operations {
public static void subtractTwoNumbers(double a, double b) {
System.out.println(a - b);
}
public static void sumTwoNumbers(double a, double b) {
System.out.println(a + b);
}
public static void divideTwoNumbers(double a, double b) {
if (b == 0) {
System.out.println("Error!");
} else {
System.out.println(a / b);
}
}
public static void multiplyTwoNumbers(double a, double b) {
System.out.println(a * b);
}
// Implemented method
public static void power(double n, double p) {
long result = 1;
while (p > 0) {
if (p % 2 != 0) {
result *= n;
}
p /= 2;
n *= n;
}
System.out.println(result);
}
}
public class SimpleCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter number 1: ");
double num1 = scanner.nextDouble();
System.out.println("Choose an operator n '+' n '-' n '*' n '/' n '^' ");
String operator = scanner.next();
System.out.println("Enter number 2: ");
double num2 = scanner.nextDouble();
switch (operator) {
case "^":
Operations.power(num1, num2);
break;
case "+":
Operations.sumTwoNumbers(num1, num2);
break;
case "-":
Operations.subtractTwoNumbers(num1, num2);
break;
case "/":
Operations.divideTwoNumbers(num1, num2);
break;
case "*":
Operations.multiplyTwoNumbers(num1, num2);
break;
default:
System.out.println("You entered an invalid operator");
}
scanner.close();
}
}