python中输入一个浮点数(带有小数),如何输出它的十分位
import re
a=input()
b='\.\d'
print(re.findall(b,a))
这是一个好问题。原以为浮点数减去其整数部分,再取其首位即是结果,但是,结果总是出人意料。比如:
>>> 5.3-5
0.2999999999999998
基于浮点数精度问题,我觉得下面的写法是最靠谱的:
>>> a = 5.3
>>> str(a).split('.')[1][0]
'3'
考虑代码的适应性,可以写成一个函数如下:
>>> def get_decile(d):
if not isinstance(d, (int,float)):
return None
items = str(d).split('.')
if len(items) > 1:
return items[1][0]
else:
return None
>>> get_decile(5.35)
'3'