Python - 找到美元和分

时间:2017-09-13 05:57:53

标签: python

假设价格是整数变量,其值是商品的美分价格(以美元为单位)。写一个声明,以单独的形式打印“X美元和Y美分”形式的价格值。因此,如果价格的价值是4321,那么您的代码将打印“43美元和21美分”。如果价值为501则会打印“5美元和1美分”。如果值为99,则您的代码将打印“0美元和99美分”。

我这样做了:

print (price/100,"dollars and",price%100, "cents")

结果Ex:2314

23.14 dollars and 14 cents

如何使结果看起来像:

23 dollars and 14 cents

3 个答案:

答案 0 :(得分:1)

输入:

x = 4321

print (x/100),'dollars and',int(100*((x/100.00)-(x/100))),'cents'

输出:

43 dollars and 21 cents

答案 1 :(得分:0)

您可以使用:

price=2314

print (price/100,"dollars and",price%100, "cents")

这将输出:

(23, 'dollars and', 14, 'cents')

答案 2 :(得分:0)

OP在正确的轨道上;在Python 3+和以上版本中

print (price//100,"dollars and",price%100, "cents")

print (math.floor(price/100),"dollars and",price%100, "cents")

给出理想的结果。


这是结合了测试策略的直接字符串处理攻击:

#--------*---------*---------*---------*---------*---------*---------*---------*
# Desc: Print Dollars and Cents
#--------*---------*---------*---------*---------*---------*---------*---------*

def formatPrint(cents):
    centsStr = str(cents)
    d, c = centsStr[:-2], centsStr[-2:]
    if cents > 99:
        print(d + ' dollars and ' + c + ' cents')
    else:
        print('0 dollars and ' + c + ' cents')
    return 


x = [0,7,23,111,4321,54321]

for ndx in range(0, len(x)):
    print (x[ndx], ':')
    formatPrint(x[ndx])