在元组中舍入数字

DGT*_*DGT 3 python

无论如何,我可以将一个元组内的数字向上舍入到两个小数点,由此:

('string 1', 1234.55555, 5.66666, 'string2')
Run Code Online (Sandbox Code Playgroud)

对此:

('string 1', 1234.56, 5.67, 'string2')
Run Code Online (Sandbox Code Playgroud)

提前谢谢了.

tux*_*21b 9

如果您的元组的固定大小为4且浮点数的位置始终相同,则可以执行以下操作:

>>> t = ('string 1', 1234.55555, 5.66666, 'string2')
>>> t2 = (t[0], round(t[1], 2), round(t[2], 2), t[3])
>>> t2
('string 1', 1234.56, 5.67, 'string2')
Run Code Online (Sandbox Code Playgroud)

一般的解决方案是:

>>> t2 = tuple(map(lambda x: isinstance(x, float) and round(x, 2) or x, t))
>>> t2
('string 1', 1234.56, 5.67, 'string2')
Run Code Online (Sandbox Code Playgroud)

  • 当我写完答案时,链接不存在,问题可能会有所不同.也许他有处理元组的麻烦而不是一般的浮点运算? (2认同)
  • @pyfunc我不会说它是重复的.这是相关的,但我认为@ tux21b发布的"一般解决方案"是OP可能试图获得的.至少我就是这样理解的,如何在包含其他类型的其他值的元组中舍入浮点数/双精度数. (2认同)