Search code examples
pythoncoding-stylestring-formattingif-statement

Python print out float or integer


How can i print out float if the result have decimal or print out integer if the result have no decimal?

c = input("Enter the total cost of purchase: ")
bank = raw_input("Enter the bank of your credit card (DBS, OCBC, etc.): ")
dbs1 = ((c/float(100))*10)
dbs2 = c-dbs1
ocbc1 = ((c/float(100))*15)
ocbc2 = c-ocbc1


if (c > 200):
    if (bank == 'DBS'):
        print('Please pay $'+str(dbs2))
    elif (bank == 'OCBC'):
        print('Please pay $'+str(ocbc2))
    else:
        print('Please pay $'+str(c))
else:
    print('Please pay $'+str(c))

exit = raw_input("Enter to exit")

Example-Result

Enter the total cost of purchase: 250
Enter the bank of your credit card (DBS, OCBC, etc.): OCBC
Please pay $212.5

Enter the total cost of purchase: 250
Enter the bank of your credit card (DBS, OCBC, etc.): DBS
Please pay $225.0

Solution

  • You can try this, which simply uses Python's string formatting method:

    if int(c) == float(c):
        decimals = 0
    else:
        decimals = 2 # Assumes 2 decimal places for money
    
    print('Please pay: ${0:.{1}f}'.format(c, decimals))
    

    This will give you the following output if c == 1.00:

    Please pay: $1
    

    Or this output if c == 20.56:

    Please pay: $20.56