当前位置: 首页 > news >正文

广东网站设计的公司福州本地推广

广东网站设计的公司,福州本地推广,做网站放广告收益,网站建设招标评分标准浮点数一个普遍的问题就是在计算机的世界中#xff0c;浮点数并不能准确地表示十进制。并且#xff0c;即便是最简单的数学运算#xff0c;也会带来不可控制的后果。因为#xff0c;在计算机的世界中只认识0与1 因为在计算机里面#xff0c;小数是不精确的#xff0c;例如…浮点数一个普遍的问题就是在计算机的世界中浮点数并不能准确地表示十进制。并且即便是最简单的数学运算也会带来不可控制的后果。因为在计算机的世界中只认识0与1 因为在计算机里面小数是不精确的例如1.115在计算机中实际上是1.1149999999999999911182所以当你对这个小数精确到小数点后两位的时候实际上小数点后第三位是4所以四舍五入因此结果为1.11。 这种说法对了一半。因为并不是所有的小数在计算机中都是不精确的。例如0.125这个小数在计算机中就是精确的它就是0.125没有省略后面的值没有近似它确确实实就是0.125。 但是如果我们在Python中把0.125精确到小数点后两位那么它的就会变成0.12为什么在这里四舍了? 还有更奇怪的另一个在计算机里面能够精确表示的小数0.375我们来看看精确到小数点后两位是多少:为什么这里又五入了?因为在Python 3里面round对小数的精确度采用了四舍六入五成双的方式。 如果你写过大学物理的实验报告那么你应该会记得老师讲过直接使用四舍五入最后的结果可能会偏高。所以需要使用奇进偶舍的处理方法。 例如对于一个小数a.bcd需要精确到小数点后两位那么就要看小数点后第三位:   如果d小于5直接舍去如果d大于5直接进位 如果d等于5d后面没有数据且c为偶数那么不进位保留c。d后面没有数据且c为奇数那么进位c变成(c 1) python中的decimal模块可以解决上面的烦恼  decimal模块中可以通过整数字符串或原则构建decimal.Decimal对象。如果是浮点数特别注意因为浮点数本身存在误差需要先将浮点数转化为字符串。 当然精度提升的同时肯定带来的是性能的损失。在对数据要求特别精确的场合例如财务结算这些性能的损失是值得的。 但是如果是大规模的科学计算就需要考虑运行效率了。毕竟原生的float比Decimal对象肯定是要快很多的。 Python提供了decimal模块用于十进制数学计算它具有以下特点 1.提供十进制数据类型并且存储为十进制数序列 2.有界精度用于存储数字的位数是固定的可以通过decimal.getcontext.precx 来设定不同的数字可以有不同的精度 3.浮点十进制小数点的位置不固定但位数是固定的 python decimal.quantize()参数rounding的decimal文档里面的解释 ROUND_CEILING (towards Infinity), ROUND_DOWN (towards zero), ROUND_FLOOR (towards -Infinity), ROUND_HALF_DOWN (to nearest with ties going towards zero), ROUND_HALF_EVEN (to nearest with ties going to nearest even integer), ROUND_HALF_UP (to nearest with ties going away from zero), or ROUND_UP (away from zero). ROUND_05UP (away from zero if last digit after rounding towards zero would have been 0 or 5; otherwise towards zero) 下面通过具体代码理解每个参数 # -*- coding: utf-8 -*-#作者cacho_37967865 #博客https://blog.csdn.net/sinat_37967865 #文件dealFloat.py #日期2019-08-01 #备注python使用浮点类型float计算后数值可能不对,这时候需要使用decimal模块 from decimal import Decimal,getcontext from decimal import ROUND_UP,ROUND_DOWN,ROUND_HALF_UP,ROUND_HALF_DOWN,ROUND_HALF_EVEN,ROUND_05UP,ROUND_CEILING ,ROUND_FLOORx 4.20 y 2.10 a 1.20 b 2.30 d 195.00def float_info():# a.bcd ,精确2位小数点i 1.115 # 在计算机中实际上是1.1149999999999999911182 四舍五入1.11j 0.125 # d后面没有数据且c为偶数那么不进位保留c 四舍五入0.12l 0.1251 # d后面有数据c变成(c 1) 四舍五入0.13k 0.375 # d后面没有数据且c为奇数那么进位c变成(c 1) 四舍五入0.38print(四舍五入,round(i,2))print(四舍五入,round(j, 2))print(四舍五入,round(l, 2))print(四舍五入,round(k, 2))def decimal_info():# a.bcd ,精确2位小数点 默认进位方式i 1.115 # 在计算机中实际上是1.1149999999999999911182 四舍五入1.11j 0.125 # d后面没有数据且c为偶数那么不进位保留c 四舍五入0.12l 0.1251 # d后面有数据c变成(c 1) 四舍五入0.13k 0.375 # d后面没有数据且c为奇数那么进位c变成(c 1) 四舍五入0.38print(浮点型数据不精确,Decimal(i))print(浮点型数据也可能精确, Decimal(j))print(传入的是字符串默认方式四舍五入, Decimal(str(i)).quantize(Decimal(0.00))) # 1.12print(传入的是浮点型默认方式四舍五入,Decimal(i).quantize(Decimal(0.00))) # 1.11print(传入的是浮点型默认方式四舍五入,Decimal(j).quantize(Decimal(0.00)))print(传入的是浮点型默认方式四舍五入,Decimal(l).quantize(Decimal(0.00)))print(传入的是浮点型默认方式四舍五入,Decimal(k).quantize(Decimal(0.00)))# 最好传入字符串print(传入的是字符串真实四舍五入, Decimal(str(i)).quantize(Decimal(0.00), ROUND_HALF_UP))print(传入的是字符串真实四舍五入, Decimal(str(j)).quantize(Decimal(0.00), ROUND_HALF_UP))print(传入的是字符串真实四舍五入, Decimal(str(l)).quantize(Decimal(0.00), ROUND_HALF_UP))print(传入的是字符串真实四舍五入, Decimal(str(k)).quantize(Decimal(0.00),ROUND_HALF_UP))print(传入的是字符串向上取值, Decimal(0.121).quantize(Decimal(0.00), ROUND_UP)) # 向上入 0.13print(传入的是字符串向下取值, Decimal(0.129).quantize(Decimal(0.00), ROUND_DOWN)) # 向下舍 0.12print(传入的是字符串向上四舍五入, Decimal(0.125).quantize(Decimal(0.00), ROUND_HALF_UP)) # 最后一位5向上入 0.13print(传入的是字符串向下四舍五入, Decimal(0.125).quantize(Decimal(0.00), ROUND_HALF_DOWN)) # 最后一位5向下舍 0.12print(传入的是字符串默认方式四舍五入, Decimal(0.125).quantize(Decimal(0.00), ROUND_HALF_EVEN)) # 默认四舍五入方式 0.12 quansize的默认设置值print(传入的是字符串默认方式四舍五入, Decimal(0.375).quantize(Decimal(0.00), ROUND_HALF_EVEN)) # 默认四舍五入方式 0.38print(传入的是字符串精确位数字为5入, Decimal(5.351).quantize(Decimal(0.00), ROUND_05UP)) # 精确的最后一位为0或者5向上入否者向下舍5.36print(传入的是字符串精确位数字为0入, Decimal(5.301).quantize(Decimal(0.00), ROUND_05UP)) # 精确的最后一位为0或者5向上入否者向下舍5.31print(传入的是字符串精确位数字非0和5舍, Decimal(5.399).quantize(Decimal(0.00), ROUND_05UP)) # 精确的最后一位为0或者5向上入否者向下舍5.39print(传入的是字符串正数时与ROUND_UP一致, Decimal(5.391).quantize(Decimal(0.00), ROUND_CEILING)) # 5.40print(传入的是字符串正数时与ROUND_DOWN一致, Decimal(5.399).quantize(Decimal(0.00), ROUND_FLOOR)) # 5.39print(传入的是字符串负数时与ROUND_DOWN一致, Decimal(-5.399).quantize(Decimal(0.00), ROUND_CEILING)) # -5.39 趋近于正无穷print(传入的是字符串负数时与ROUND_UP一致, Decimal(-5.399).quantize(Decimal(0.00), ROUND_FLOOR)) # -5.40 趋近于负无穷print(传入的是字符串与正负无关最后一位始终进, Decimal(-5.399).quantize(Decimal(0.00), ROUND_UP))def float_deal():z x y # 6.300000000000001print(z)if z 6.30:print(z计算正确)else:print(z计算错误)c a bprint(c)if c 3.5:print(c计算正确)else:print(c计算错误)e round(195.00 / 24,2)print(e)if e 8.13:print(e四舍五入正确)else:print(e四舍五入错误)def decimal_deal():getcontext().prec 3 # 设置精确值,只针对计算时无法除净时z Decimal(str(x)) Decimal(str(y))print(type(z),z)e Decimal(195.00) / Decimal(24)print(e)if __name__ __main__:float_info()decimal_info()#float_deal()#decimal_deal()
http://wiki.neutronadmin.com/news/181106/

相关文章:

  • 网站建设与开发英文文献关键词挖掘查询工具爱站网
  • 公司网站开发实训报告网站的主流趋势
  • 小程序网站开发运行合同封面型网页网站有哪些
  • 用wordpress开发网站模板免费创建论坛网站
  • 上海网站建设工作室工程资料外包公司
  • 做网站名词网站建设费用模板
  • 网站订制公司自媒体wordpress
  • 网站建设云南找人做仿网站
  • 轮播网站响应式网站 谷歌 移动网站
  • 北京高端网站建设优势开源展示型网站
  • 代理会计公司网站模版长沙网站建站公司
  • 建一个网站大概需要多少钱百度公司可以做网站么
  • 护肤品网站建设方案设计素材网站
  • php手机网站如何制作教程wordpress文字编辑器
  • 外国网站签到做任务每月挣钱展示型手机网站模板下载
  • 一个网站怎么做软件好用吗规划建立一个网站
  • 需要推销自己做网站的公司公关到底做什么
  • 销售类网站数据库的建设郴州网络推广公司排名
  • 做的网站百度没收录网页的后缀名有那些
  • 网站制作公司广州网页制作三剑客专家培训教程
  • 山东网站建设模板制作wordpress字体选择
  • 嘉定网站设计开发宝安网页设计
  • 建设网站有哪些好处ps设计师网站
  • 电脑做网站主机石家庄站到石家庄北站
  • 腾讯云网站建设教程wordpress官方手机客户端
  • wordpress做外贸网站的劣势国家新闻最新消息今天
  • 网站建设汇报网站建设服务费交印花税吗
  • 网站开发外包 价格河北省建设网站锁安装什么驱动
  • 中国航天建设集团有限公司网站珠海网站建设方案报价
  • 绵阳做网站的公司有哪些wordpress get_post_meta