Lukon
Lukon

Reputation: 265

Having issues printing out totals with only two decimal points [Python 2.7]

My calculations seem to be showing as incorrect now despite the decimal format being correct.

import time # It was reccommend in our text to always have your import data located outside of any loops, thus I put mine here.

while True: # This is the main, and only; while loop.  It will repeat the program and allow users to book more reservations depending on input.
    user_people = int(raw_input("Welcome to Ramirez Airlines!  How many people will be flying?"))
    user_seating = str(raw_input("Perfect!  Now what type of seating would your party prefer? We offer Economy, Business and First Class!"))
    
    else:
        before_discount = luggage_total + seats_total
        discount_amount = before_discount * discount_rate
        after_discount = before_discount - discount_amount

        print ('Unfortunately we were not able to discount this particular transaction, however you can learn how to save 10% on future flights through our Frequent Flyers program! Contact us for more info!')
        print ('The total tax amount for your order is: $%.2f') % (before_discount * tax_rate)
        print ('Your total amount due including taxes for your airfare is: $%.2f') % (before_discount * tax_rate + before_discount)

    
    user_continue = raw_input("Your reservation was submitted successfully.  Would you like to do another?")    
    if user_continue != 'yes':
        break

print('Thank you for flying with Ramirez Airlines!')   

Upvotes: 1

Views: 233

Answers (3)

Padraic Cunningham
Padraic Cunningham

Reputation: 180441

print 'Your total amount due is ${:.2f}'.format(totalCost)

And:

print 'Your total amount due is $%.2f' % totalCost 

both print to two decimal places.

In [3]: 'Your total amount due is $%.2f' % 1.2234
Out[3]: 'Your total amount due is $1.22'



In [4]: 'Your total amount due is ${:.2f}'.format(1.2234)
Out[4]: 'Your total amount due is $1.22'

If you are adding two numbers you need parens for old style formatting:

In [6]: 'Your total amount due is $%.2f' % (1.2234 + 1.2324)
Out[6]: 'Your total amount due is $2.46'
In [7]: 'Your total amount due is ${:.2f}'.format(1.2234+   1.2324)
Out[8]: 'Your total amount due is $2.46'

Using an example from your code:

print ('Your total amount due including taxes for your airfare is: ${:.2f}'.format(tax_amount + after_tax )

Upvotes: 4

epx
epx

Reputation: 809

print ('text'),("%.2f" % variable)

should do it

Upvotes: 1

Alexander
Alexander

Reputation: 109546

total_cost = 1234.56789
print('Your total amount due is ${0:.2f}'.format(total_cost))

Your total amount due is $1234.57

Upvotes: 2

Related Questions