Python打印出浮点数或整数

时间:2013-05-16 01:36:02

标签: python coding-style string-formatting if-statement

如果结果有小数,我如何打印出浮点数?如果结果没有小数,我如何打印出整数?

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")

实施例-结果

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

4 个答案:

答案 0 :(得分:5)

你可以尝试这个,它只使用Python的字符串格式化方法:

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))

如果c == 1.00

,这将为您提供以下输出
Please pay: $1

如果c == 20.56

,则输出此输出
Please pay: $20.56

答案 1 :(得分:4)

Python浮点数有一个内置的方法来确定它们是否是整数:

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

答案 2 :(得分:1)

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
你的代码中的

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))

答案 3 :(得分:0)

由于现在有一种更简单的方法,并且这篇文章是第一个结果,所以人们现在应该关注它:

print(f"{3.0:g}")  # 3
print(f"{3.14:g}")  # 3.14