免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4307 | 回复: 0
打印 上一主题 下一主题

确定浮点数的保留位数的实现 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-19 18:58 |只看该作者 |倒序浏览

                                                确定浮点数的保留位数的实现
提示:在统计学生的分数时,因为加权折算的结果不归正,所以要进行下处理再显示。一种是保留一位小数点,四舍五入;有时要设置三段式舍入。需要用python实现。
第一种:只保留一位。设x为要转换的数。最大分数情况为100.0
   使用打印格式来实现。
   >>> x=50.11
   >>> print "5.1f" % x
   50.1
   >>> x="5.1f" %x
   >>> x
   50.1
第二种,按三段来舍入:
## if x=60.0~60.3  => 60.0
## if x=60.4~60.6  => 60.5
## if x=60.7~60.9  => 61.0
def trifloor(xy):
        from math import floor, ceil, modf
        x,y=modf(xy)
        x="%3.1f"%x
        if '0.0' >> trifloor(60.3)
60.0
>>> trifloor(60.4)
60.5
>>> trifloor(60.8)
61
三、如果小数位为0,则输出整数,否则输出小数
   其中,sumscore ===> 为原始总分
        score ===> 为原始得分
        ret ===> 折算为百分制后的分数
    def score_weighting(score, sumscore):
        ret=score*100.0/sumscore
        ret=trifloor(ret)
        from math import floor
        if ret==floor(ret):
            return ("%d" % ret).strip()
        else:
            return ("%5.1f" % ret).strip()
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13637/showart_694649.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP