Python print out float or integer

橙三吉。 提交于 2019-12-01 06:30:59

问题


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

回答1:


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



回答2:


Python floats have a built-in method to determine whether they're an integer:

x = 212.50
y = 212.0
f = lambda x: int(x) if x.is_integer() else x
print(x, f(x), y, f(y), sep='\t')
>> 212.5    212.5   212.0   212



回答3:


def nice_print(i):
    print '%.2f' % i if i - int(i) != 0 else '%d' % i

nice_print(44)
44

nice_print(44.345)
44.34

in Your code:

def nice_number(i):
    return '%.2f' % i if i - int(i) != 0 else '%d' % i

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 $'+nice_number(dbs2))
    elif (bank == 'OCBC'):
        print('Please pay $'+nice_number(ocbc2))
    else:
        print('Please pay $'+nice_number(c))
else:
    print('Please pay $'+nice_number(c))


来源:https://stackoverflow.com/questions/16577669/python-print-out-float-or-integer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!