首页 / PYTHON / 十进制Python与浮点运行时
十进制Python与浮点运行时
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了十进制Python与浮点运行时,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含937字,纯文字阅读大概需要2分钟。
内容图文
关于在使用这两种不同数据类型之间我应该期待什么样的运行时差异的一般问题.
我的测试:
test = [100.0897463, 1.099999939393,1.37382829829393,29.1937462874847272,2.095478262874647474]
test2 = [decimal.Decimal('100.0897463'), decimal.Decimal('1.09999993939'), decimal.Decimal('1.37382829829'), decimal.Decimal('29.1937462875'), decimal.Decimal('2.09547826287')]
def average(numbers, ddof=0):
return sum(numbers) / (len(numbers)-ddof)
%timeit average(test)
%timeit average(test2)
运行时的差异是:
1000000个循环,最佳3:364 ns每个循环
10000个循环,最佳3:每循环80.3μs
所以使用十进制比使用浮点数慢大约200倍.在确定使用哪种数据类型时,这种差异是否正常并且与我期望的一致?
最佳答案:
根据您看到的时差,您可能正在使用Python 2.x.在Python 2.x中,十进制模块是用Python编写的,而且速度很慢.从Python 3.2开始,十进制模块被重写为C并且速度更快.
在我的系统上使用Python 2.7,十进制模块慢了大约180倍.使用Python 3.5,十进制模块的速度只有2.5倍.
如果你关心十进制性能,Python 3要快得多.
内容总结
以上是互联网集市为您收集整理的十进制Python与浮点运行时全部内容,希望文章能够帮你解决十进制Python与浮点运行时所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。