前言
本文主要介绍一种判断一个浮点数的小数点后面首个非零数字位于小数点后面第几位的方法。该方法有时能帮助我们找到划分坐标轴的最小分度值。
一、背景介绍
通常情况下,我们需要对小数点后面的数据进行适当的保留和舍去,如果有一组数据,我们需要根据这组数据中小数点后面首个非零数字所在的位次的最大值来决定保留的小数的位数。
二、实现方法
1.引入库
代码如下(示例):
import re
2.算法实现
代码如下(示例):
import re
bit_number = 0
Data_sample = 0.000000004899292
Data_sample = '%.20f' % Data_sample
Data_sample_cut = re.match(r'(\d+)\.(\d+)', Data_sample).group(2)
for each_char in Data_sample_cut:
if each_char == '0':
# 注意这个条件下统计的是最后一个是零的那一位是小数点后第几位
bit_number += 1
else:
break
# 所以这个条件下小数点后的第一个非零数字的位次等于bit_number + 1
bit_number = bit_number + 1
print(bit_number)
输出结果如下:
总结
以上就是今天要讲的内容,本文仅仅简单介绍了怎样利用正则表达式,再结合if语句判断一个数据的小数点后面首个非零数字位于小数点后面第几位的方法。