2010-11-25 回答

import decimal

a = '12.11111'

decimal.Decimal(a).quantize(decimal.Decimal('0.01'))

Decimal('12.11')

补充:

>>> import decimal>>> a = 1>>> b = decimal.Decimal(a).quantize(decimal.Decimal('0.01'))>>> bDecimal('1.00')>>> print b1.00

追问:

这是我做的程序:(要求显示找多少元,多少角,多少分!!)

#=======================================================import

from math import*

#======================================================main module

def main():

price,payment=dataInput()

change=calculateChange(price,payment)

printResults(price,payment,change)

#======================================================= input

def dataInput():

again=0

while again==0:

try:

price=float(input('Price of purchase is  '))

payment=float(input('How much you pay? '))

if payment>price:

again=1

else:

print('The payment must greater then the price')

except(ValueError):

print('Bad purchase number!')

return price,payment

#=========================================================== calculate price

def calculateChange(price,payment):

change=payment-price

return change

#========================================================= print

def printResults(price,payment,change):

import decimal

a=decimal.Decimal(price).quantize(decimal.Decimal('0.01'))

b=decimal.Decimal(payment).quantize(decimal.Decimal('0.01'))

c=decimal.Decimal(change).quantize(decimal.Decimal('0.01'))

print(('Amount of purchase: $'),a)

print(('Payment: $'),b)

print(('Amount of change: $'),c)

m=str(c)

print('    ',m[0],'dollors')

print('    ',m[2],'dimes')

print('    ',m[3],'pennys')

return

#=========================================================== call

main()

现在就是printResult这一部分不会编,我输入价格是4.5,然后支付10,找5.5。然后没有分,就产生错误,请问这怎么修正,才能显示5元,5角,和0分呢?

(加到100分!!!!!)

追答:

#! usr/bin/env python#coding:utf-8

from decimal import Decimal

#======================================================= inputdef dataInput():    again=0    while again==0:        try:            price = raw_input('Price of purchase is  ')            payment = raw_input('How much you pay? ')            price=Decimal(price.strip()).quantize(Decimal('0.01'))            payment=Decimal(payment.strip()).quantize(Decimal('0.01'))            if payment>price:                again=1            else:                print 'The payment must greater then the price'        except Exception, e:            print e            print 'Bad purchase number!'    return price,payment#=========================================================== calculate pricedef calculateChange(price,payment):    change=payment-price    return change#========================================================= print

def convert(money):    if not isinstance(money, Decimal):        return 'error'    money = str(money)    yuan, jiao_fen = money.split('.')    jiao, fen = jiao_fen[0], jiao_fen[1]    return '找零: %s元%s角%s分' % (yuan, jiao, fen)    def printResults():    price, payment = dataInput()    change = calculateChange(price, payment)            print 'Amount of purchase: %s' % price    print 'Payment: %s' % payment    print 'Amount of change: %s' % change        print convert(change)    #======================================================main module

if __name__ == '__main__':    printResults()说明:

首先你用input()进行输入,如果是输入4.5的话,就直接是float的型了。而Decimal转换float的时候,要先把其转成字符串形式,所有我改成了raw_input()(当成字符串输入)了。其次,算找零的时候不能这样直接用切片操作。如果是4.5 我给了100块钱呢?那元就不是只有一位了。所有先split('.')再切片。位置就固定了。一般用main方法的时候用下面的方法:if __name__ == '__main__':    main()

结果:Price of purchase is  4.5How much you pay? 4.6Amount of purchase: 4.50Payment: 4.60Amount of change: 0.10找零: 0元1角0分============Price of purchase is  4.5How much you pay? 100Amount of purchase: 4.50Payment: 100.00Amount of change: 95.50找零: 95元5角0分

补充:

怎么格式全乱了- -#! usr/bin/env python#coding:utf-8

from decimal import Decimal

#======================================================= inputdef dataInput():    again=0    while again==0:        try:            price = raw_input('Price of purchase is  ')            payment = raw_input('How much you pay? ')            price=Decimal(price.strip()).quantize(Decimal('0.01'))            payment=Decimal(payment.strip()).quantize(Decimal('0.01'))            if payment>price:                again=1            else:                print 'The payment must greater then the price'        except Exception, e:            print e            print 'Bad purchase number!'    return price,payment#=========================================================== calculate pricedef calculateChange(price,payment):    change=payment-price    return change#========================================================= print

def convert(money):    if not isinstance(money, Decimal):        return 'error'    money = str(money)    yuan, jiao_fen = money.split('.')    jiao, fen = jiao_fen[0], jiao_fen[1]    return '找零: %s元%s角%s分' % (yuan, jiao, fen)    def printResults():    price, payment = dataInput()    change = calculateChange(price, payment)            print 'Amount of purchase: %s' % price    print 'Payment: %s' % payment    print 'Amount of change: %s' % change        print convert(change)    #======================================================main module

if __name__ == '__main__':    printResults()

追问:

money 是怎么来的啊?

追答:

money 是个形参。传 change过去用的

convert(change)

追问:

+我Q吧:308216226

python怎么保留两位小数是多少_python 怎么保留2位小数相关推荐

  1. python如何对两个矩阵进行拼接_Python:合并两个numpy矩阵的实现

    Python:合并两个numpy矩阵的实现 numpy是Python用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象,可以说numpy让Python有了Matlab的味道. 如何利用 ...

  2. python找出两个列表不同元素_python 找出两个列表的相同元素与不同元素

    python 找出两个列表的相同元素与不同元素,用了以下几种方法 1. 通过set 集合 list1 = [1,2,3] list2=[2,3,4] set1 = set(list1) set2 = ...

  3. python怎么交换两个变量的值_python交换两个变量的值方法

    大部分语言,例如c语言,交换两个变量的值需要使用中间变量. 例如交换a,b 伪代码: tmp = a a = b b = tmp python里面可以实现无临时变量的交换 (a,b) = (b,a) ...

  4. python输出保留两位小数怎么表示_python中保留两位小数怎么表示

    这里有三种方法, round(a,2) '%.2f' % a Decimal('5.000').quantize(Decimal('0.00')) 当需要输出的结果要求有两位小数的时候,字符串形式的: ...

  5. python中浮点数和小数的区别_Python中的浮点数和小数

    简介 float类型,即浮点数,是Python内置的对象类型;decimal类型,即小数类型,则是Python的标准库之一decimal提供的对象类型,也是内置的.了解decimal类型的最佳资料,就 ...

  6. python如何对两个矩阵进行拼接_Python合并两个numpy矩阵

    numpy是Python用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象,可以说numpy让Python有了Matlab的味道. 实际的应用中,矩阵的合并是一个经常发生的操作,如何利 ...

  7. python怎样把两个图画到一起_python实现两张图片拼接为一张图片并保存

    本文实例为大家分享了python实现两张图片拼接为一张图片并保存的具体代码,供大家参考,具体内容如下 这里主要用Python扩展库pillow中Image对象的paste()方法把两张图片拼接起来 f ...

  8. python怎么把两个文件合并工具_python开发目录合并小工具 PathMerge

    前言 这个程序陆陆续续开发了几天,正好我在学Python,就一边做一边学,倒是学到不少东西. 不得不说python是快速开发的好工具. 程序做了一些改进,这两天又忙着毕设,现在才想起来发到博客上.想想 ...

  9. python已知两条直角边求斜边_Python实现已知三角形两直角边,求斜边--思路,伪代码,优化...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 用Python实现"已知三角形两个直角边,求斜边" 要求:用户输入两个直角边(数值为浮点类型),若非浮点类型,则提示用户,继续输入. ...

最新文章

  1. java map set_java中Map、Set、List的简单使用教程(快速入门)
  2. mysql -h139.129.205.80 -p test_db_dzpk db.dump
  3. spring cloud 学习之 服务注册和发现(Eureka)
  4. 修改EIGRP 路径cost 值,以及分析和实现等价与非等价负载均衡
  5. pytorch构造可迭代的DataLoader,动态流式读取数据源,不担心内存炸裂(pytorch Data学习三)
  6. FPGA设计技巧总结
  7. 张近东发致家乐福中国员工内部信:唯有坚持、坚守才能取得更大的成功
  8. Sphinx 使用心得
  9. 超全的 Python 可视化教程,收藏
  10. 规划计算机网络的成本估算,传统的项目管理软件包括进度计划、成本控制、资源调度和( )等功能模块。...
  11. 黑马程序员:一些简单的设计模式
  12. int 和 枚举类型enum的转换 in c++
  13. Python八个自动化办公的技巧
  14. vasp计算压电系数_求助DFTP算出来的压电系数 - 第一原理 - 小木虫 - 学术 科研 互动社区...
  15. 如何保证同事的代码不会腐烂?一文带你了解 Alibaba COLA 架构
  16. idea无法识别java文件、Maven下载依赖报错:Cannot resolve...或者Could not find artifact...实测有效
  17. ctfshow XSS web316-web333 wp
  18. Promox VE安装黑群晖保姆级图文教程
  19. 2、用Keil新建TM4C123G工程步骤
  20. 【错题本】关于protected修饰的成员变量,以下说法正确的是

热门文章

  1. selenium 模拟手机浏览器操作 click点击/tap触摸 元素无效 的解决方法
  2. 无法连接同事的计算机,win7开启QQ远程协助连不上别人电脑怎么办_win7系统qq远程协助无法连接对方电脑修复方法...
  3. 3Dmax建模人物步骤
  4. 云计算python Spring cloud 微服务
  5. linux的scp命令用不了,CentOS使用不了scp命令怎么办
  6. 软件测试基础测试分析法
  7. ResNet18识别CelebA数据集(Pytorch实战)
  8. 最新H5定制版早起打卡支付已接带完整搭建教程
  9. 简单使用系统的设备实现二维码扫描
  10. 全志H8/a83t专业安卓KTV主板,支持双屏异显,接口丰富,支持vga、hdmi、cvbs显示