在python中,如何将整数舍入为总位数(包括整数部分),而不是固定位数?

在python中,如何将整数舍入为总位数(包括整数部分),而不是固定位数?,python,rounding,digits,Python,Rounding,Digits,我想知道在python中是否有任何简单的方法可以将一个双精度数字舍入为总位数? 例如,我总共需要3位数字,所以 我想1.523是1.52,23.45是23.5,108,9是109 非常感谢你是说“圆形”还是“格式”?换句话说,您所寻求的结果是什么类型的(float或str)?另外,对于.0005或10005,您想要什么答案?四舍五入(23.45,1)==23.4,而不是23.5。 sround = lambda x,d: round(x,d - int(math.ceil(math.log10(

我想知道在python中是否有任何简单的方法可以将一个双精度数字舍入为总位数? 例如,我总共需要3位数字,所以 我想1.523是1.52,23.45是23.5,108,9是109

非常感谢

你是说“圆形”还是“格式”?换句话说,您所寻求的结果是什么类型的(
float
str
)?另外,对于
.0005
10005
,您想要什么答案?
四舍五入(23.45,1)==23.4
,而不是
23.5
sround = lambda x,d: round(x,d - int(math.ceil(math.log10(abs(x)))))

sround(1.2345, 3) # 1.23
sround(12345.67, 3) # 12300.0
sround(-.01234, 1) # -0.01
sround(199, 1) # 200.0