Python 如何获取数字的最后2位(整数或小数)
我需要得到整数和小数的最后两位数 我正在使用Python 如何获取数字的最后2位(整数或小数),python,python-3.x,Python,Python 3.x,我需要得到整数和小数的最后两位数 我正在使用number%100运算符获取整数的最后两位数字。但是,当我在小数点上尝试相同的操作时,会出现错误 有没有简单的方法可以做到这一点,而不用转换成字符串并进行解析 例如: number = 1234.56789 我需要89 56789 % 100 = 89 1234.56789%100给出错误: ValueError: invalid literal for int() with base 10 更多示例: number = 0.1 我需要得到
number%100
运算符获取整数的最后两位数字。但是,当我在小数点上尝试相同的操作时,会出现错误
有没有简单的方法可以做到这一点,而不用转换成字符串并进行解析
例如:
number = 1234.56789
我需要89
56789 % 100 = 89
1234.56789%100
给出错误:
ValueError: invalid literal for int() with base 10
更多示例:
number = 0.1
我需要得到
0.1
(带小数)。以下是解决您问题的有效方法:
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
以下是您的问题的有效解决方案:
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
六羟甲基三聚氰胺六甲醚。。。“最后两位数”是指1013.145的最后两位数是13吗?或者45?你知道这个数字除了小数点还有多少位吗?或者是超过小数点后的最大值?如果数字是,最后两位数是多少?(注意:表达式是一个链接)。是
30
还是04
?我想@Rogalski是在问这个问题0.1+0.2
将实际返回0.300000000000000004
。你想从中得到0.3还是04?@s.py我只想指出一些关于这项任务的琐事,浮点数中实际的“最后两个”有效数字可能与直观的“显然应该是x为什么应该是不同的”方法有很大不同。嗯。。。“最后两位数”是指1013.145的最后两位数是13吗?或者45?你知道这个数字除了小数点还有多少位吗?或者是超过小数点后的最大值?如果数字是,最后两位数是多少?(注意:表达式是一个链接)。是30
还是04
?我想@Rogalski是在问这个问题0.1+0.2
将实际返回0.300000000000000004
。你想从中得到0.3还是04?@s.py我只想指出一些关于这个任务的琐事,实际的浮点数中的“最后两个”有效数字可能与直观的“显然应该是x为什么应该是不同的”方法有很大的不同。是的,这是有效的。这是正确的答案。一旦你的答案被标记为正确答案,我就删除我的答案,直到OP改变他的投票。是的,这是有效的。这是正确的答案。一旦你的答案被标记为正确答案,我就删除我的答案,直到OP改变他的投票。