The issue i am having is my rounding my results to 2 decimal places. My app gets the right results, however, i am having difficulty making the app round to the nearest decimal as you would with currency
cost = input("\nEnter the 12 month cost of the Order: ")
cost = float(cost)
print("\n12 Month Cost:",
cost * 1,"USD")
print("6 Month Cost:",
cost * 0.60,"USD")
print("3 Month Cost:",
cost * 0.36,"USD")
so for example if the 12 month price is $23, the 6 month price is 13.799999999999999 but i want it to show 13.80
I've looked around google and how to round a number but couldn't find much help on rounding a result.
You should use a format specifier:
print("6 Month Cost: %.2fUSD" % (cost * .6))
Even better, you shouldn't rely on floating point numbers at all and use the decimal
module instead, which gives you arbitrary precision and much more control over the rounding method:
from decimal import Decimal, ROUND_HALF_UP
def round_decimal(x):
return x.quantize(Decimal(".01"), rounding=ROUND_HALF_UP)
cost = Decimal(input("Enter 12 month cost: "))
print("6 Month Cost: ", round_decimal(cost * Decimal(".6")))