我需要得到整数和小数的最后2位数。
我使用number%100
运算符来获取整数的最后2位数。但是,当我在小数点上尝试相同时,我收到错误。
有没有简单的方法可以做到这一点,而无需转换为字符串并进行解析?
示例:
number = 1234.56789
我需要89。
56789 % 100 = 89
1234.56789 % 100
会出错:
ValueError: invalid literal for int() with base 10
更多例子:
number = 0.1
我需要0.1
(带小数)。
答案 0 :(得分:4)
以下是解决问题的有效方法:
def last_2_digits_at_best(n):
return float(str(n)[-3:]) if '.' in str(n)[-2:] else int(str(n)[-2:])
print last_2_digits_at_best(1234.56789)
print last_2_digits_at_best(123)
print last_2_digits_at_best(0.1)
print last_2_digits_at_best(1)
print last_2_digits_at_best(0.1 + 0.2)
输出:
89
23
0.1
1
0.3
4.5
1.4