Python 如何截断数字?

Python 如何截断数字?,python,Python,我有数字,例如: 100.1264 9.09 123 1298.456789 >>> import math >>> x = 100.1264 >>> math.trunc(x * 100) / 100 100.12 我想把它截断成: 100.12 9.09 123 1298.45 如何截断这些数字以保留其形式?s=“””100.1264 s="""100.1264 9.09 123 343.1 1298.456789""" print

我有数字,例如:

100.1264
9.09
123
1298.456789
>>> import math
>>> x = 100.1264
>>> math.trunc(x * 100) / 100
100.12
我想把它截断成:

100.12
9.09
123
1298.45
如何截断这些数字以保留其形式?

s=“””100.1264
s="""100.1264
9.09
123
343.1
1298.456789"""
print re.sub(r"(?<=\.)(\d{2})\d+",r"\1",s)
9.09 123 343.1 1298.456789""" 打印re.sub(r)(?如果您有数字(而不是字符串),则可以使用:

import math
math.trunc(x * 100) / 100
例如:

100.1264
9.09
123
1298.456789
>>> import math
>>> x = 100.1264
>>> math.trunc(x * 100) / 100
100.12
您也可以使用
int
代替
math.trunc
,但是请注意,浮点和int之间的强制转换可能在计算上很昂贵


额外提示:如果您想要任意精度的十进制算法,请查看。

您所说的“数字”是什么意思"?它们是字符串的一部分,还是数字对象的一部分?您希望它们显示为四舍五入到2dp,还是实际四舍五入?到目前为止您尝试了什么?请提供更多信息。nips您尝试过什么吗?向我们展示您作为python代码尝试过的内容。请参考此答案,这可能会对您有所帮助。强制转换到字符串,正则表达式并将其转换为与例如
int(s*100)/100.0
…@jornsharpe round(4.1234)相比,ng back(使用
literal\u eval
,而不是
float
?!)似乎效率低下给出
4.0
?是的,我在评论后不久就意识到了这一点。正如其他地方所指出的
math.trunc
也可用,但关键是通过字符串的往返似乎是一种奇怪的方法。@jonrsharpe我不知道
math.trunk