如何使用%运算符获取浮点数小数点前后的指定单个数字
解决方案
获取个位数字
浮点数对10做取余运算会得到除以10后的余数,包含个位整数和后续小数部分,直接转int截断小数即可得到个位值,对应运算为int(f % 10)。
获取十分位数字
先将浮点数乘以10,把原十分位的数字抬到个位位置,再对10做取余运算后转int,即可得到十分位值,对应运算为int(f * 10 % 10)。
完整示例代码
f = float(input("Number: ")) # 取小数点前个位 single_digit = int(f % 10) # 取小数点后十分位 tenths_digit = int(f * 10 % 10) print(single_digit) print(tenths_digit)
注意事项
受浮点数二进制存储精度影响,部分数值运算时可能出现类似0.29 * 10 = 2.8999999999999995的偏差,可在取整前加极小偏移量规避:int(f * 10 % 10 + 1e-8)。
内容的提问来源于stack exchange,提问作者Kosky
相关产品推荐
相关产品推荐

