python(数据精度处理)

Posted mr-zy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python(数据精度处理)相关的知识,希望对你有一定的参考价值。

一、取整处理

1.int() 向下取整 内置函数 

1 n = 3.75
2 print(int(n))
>>> 3 3 n = 3.25 4 print(int(n))
>>> 3

2.round() 四舍五入 内置函数

1 n = 3.75
2 print(round(n))
>>> 4 3 n = 3.25 4 print(round(n))
>>> 3

3. floor() 向下取整 math模块函数 

floor的英文释义:地板。顾名思义也是向下取整

技术图片
1 import math
2 n = 3.75
3 print(math.floor(n))
>>> 3 4 n = 3.25 5 print(math.floor(n))
>>> 3
技术图片

4.ceil()向上取整 math模块函数

ceil的英文释义:天花板。

技术图片
1 import math
2 n = 3.75
3 print(math.ceil(n))
>>> 4 4 n = 3.25 5 print(math.ceil(n))
>>> 4
技术图片

5.modf() 分别取整数部分和小数部分 math模块函数

该方法返回一个包含小数部分和整数部分的元组
技术图片
1 import math
2 n = 3.75
3 print(math.modf(n))
>>> (0.75, 3.0) 4 n = 3.25 5 print(math.modf(n))
>>> (0.25, 3.0) 6 n = 4.2 7 print(math.modf(n))
(0.20000000000000018, 4.0)
技术图片

最后一个的输出,涉及到了另一个问题,即浮点数在计算机中的表示,在计算机中是无法精确的表示小数的,至少目前的计算机做不到这一点。上例中最后的输出结果只是 0.2 在计算中的近似表示。Python 和 C 一样, 采用 IEEE 754 规范来存储浮点数。

 

二、小数处理

1.数据精度处理,保留小数位数

(1)%f四舍五入方法 ---> "%.2f"

  • 这个方法是最常规的方法,方便实用
a = 1.23456

print (%.4f % a)
print (%.3f % a)
print (%.2f % a)

----->1.2346
----->1.235
----->1.23

 

(2)不四舍五入

  • 方法1:使用序列中切片
#coding=utf-8

a = 12.345
print str(a).split(.)[0] + . + str(a).split(.)[1][:2]


----> 12.34

 

 

  • 方法2:使用re正则匹配模块
import re
a = 12.345
print re.findall(r"d{1,}?.d{2}", str(a))

---->[12.34]

 

以上是关于python(数据精度处理)的主要内容,如果未能解决你的问题,请参考以下文章

python常用代码片段总结

python 设置文件中数据的读取精度

你如何在 python 中处理 graphql 查询和片段?

GLSL-片段着色器不同部分的精度不同

Python遥感图像处理应用篇(二十八):Python绘制遥感图像分类结果混淆矩阵和计算分类精度

Python遥感图像处理应用篇(二十八):Python绘制遥感图像分类结果混淆矩阵和计算分类精度