关于Python中浮点数精度处理的技巧总结

yipeiwu_com5年前Python基础

前言

最近在使用Python的时候遇到浮点数运算,发现经常会碰到如下情况:

出现上面的情况,主要还是因浮点数在计算机中实际是以二进制保存的,有些数不精确。

比如说: 0.1是十进制,转化为二进制后它是个无限循环的数:

0.00011001100110011001100110011001100110011001100110011001100

而python是以双精度(64)位来保存浮点数,多余的位会被截掉,所以看到的是0.1,但在电脑上实际保存的已不是精确的0.1,参与运算后,也就有可能点误差,特别是金融邻域里面,对精度更是要求更高,如何在Python中获取特定位数精度值?

【方法一】利用round方法:


【方法二】利用decimal模块:


更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对【听图阁-专注于Python设计】的支持。

相关文章

Python实现读写INI配置文件的方法示例

本文实例讲述了Python实现读写INI配置文件的方法。分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import ConfigParser im...

六行python代码的爱心曲线详解

六行python代码的爱心曲线详解

前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧。实际上,当时有效偏颇...

Python3.6.2调用ffmpeg的方法

本文是为了学习python调用C语言的库写的例子。 去ffmpeg官网下载编译好的avcodec-57.dll、avutil-55.dll、swresample-2.dll,准备好了C语...

利用Python的Twisted框架实现webshell密码扫描器的教程

好久以来都一直想学习windows中得iocp技术,即异步通信,但是经过长时间研究别人的c++版本,发现过于深奥了,有点吃力,不过幸好python中的twisted技术的存在方便了我。...

python3读取csv和xlsx文件的实例

基于win10系统,python3.6 读取csv 使用csv函数包,安装 pip install csv 使用方法: import csv def fileload(filenam...