Fix negative root calculation
This commit is contained in:
parent
434c7bec09
commit
538ddc2eea
1 changed files with 9 additions and 8 deletions
|
@ -10,14 +10,12 @@
|
||||||
# 4 - Attempting to extract a root of a negative number with an even degree
|
# 4 - Attempting to extract a root of a negative number with an even degree
|
||||||
# 5 - Invalid operation entered
|
# 5 - Invalid operation entered
|
||||||
|
|
||||||
import sys
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
numberA = float(input("Enter number A: "))
|
numberA = float(input("Enter number A: "))
|
||||||
numberB = float(input("Enter number B: "))
|
numberB = float(input("Enter number B: "))
|
||||||
except ValueError:
|
except ValueError:
|
||||||
print("Invalid numbers entered.")
|
print("Invalid numbers entered.")
|
||||||
sys.exit(1)
|
exit(1)
|
||||||
|
|
||||||
print(
|
print(
|
||||||
'''
|
'''
|
||||||
|
@ -41,20 +39,23 @@ elif operation == "*" or operation == "×": # ASCII asterisk or Unicode multipli
|
||||||
elif operation == "/" or operation == "÷": # ASCII slash or Unicode division sign
|
elif operation == "/" or operation == "÷": # ASCII slash or Unicode division sign
|
||||||
if numberB == 0:
|
if numberB == 0:
|
||||||
print("Division by zero.")
|
print("Division by zero.")
|
||||||
sys.exit(2)
|
exit(2)
|
||||||
else:
|
else:
|
||||||
print(numberA / numberB)
|
print(numberA / numberB)
|
||||||
elif operation == "root" or operation == "√": # Unicode radical symbol
|
elif operation == "root" or operation == "√": # Unicode radical symbol
|
||||||
if numberB < 1 or not numberB.is_integer():
|
if numberB < 1 or not numberB.is_integer():
|
||||||
print("Can't extract a root with non-natural degree.")
|
print("Can't extract a root with non-natural degree.")
|
||||||
sys.exit(3)
|
exit(3)
|
||||||
elif (numberB % 2) == 0 and numberA < 0:
|
elif (numberB % 2) == 0 and numberA < 0:
|
||||||
print("Can't extract a root of a negative number with an even degree.")
|
print("Can't extract a root of a negative number with an even degree.")
|
||||||
sys.exit(4)
|
exit(4)
|
||||||
|
else:
|
||||||
|
if numberA < 0:
|
||||||
|
print(-abs(numberA ** (1 / numberB)))
|
||||||
else:
|
else:
|
||||||
print(numberA ** (1 / numberB))
|
print(numberA ** (1 / numberB))
|
||||||
elif operation == "square" or operation == "²": # Unicode superscript 2
|
elif operation == "square" or operation == "²": # Unicode superscript 2
|
||||||
print("Number A square: " + str(numberA ** 2) + "\nNumber B square: " + str(numberB ** 2))
|
print("Number A square: " + str(numberA ** 2) + "\nNumber B square: " + str(numberB ** 2))
|
||||||
else:
|
else:
|
||||||
print("Invalid operation.")
|
print("Invalid operation.")
|
||||||
sys.exit(5)
|
exit(5)
|
||||||
|
|
Reference in a new issue