Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取数字的最后2位(整数或小数)_Python_Python 3.x - Fatal编程技术网

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改变他的投票。