【发布时间】:2022-01-20 14:11:41
【问题描述】:
假设我有一个任意浮点数 x = 123.123456 并想从浮点数中删除最后 n 个十进制数字,即 n = 1 然后 x = 123.12345、n = 2 然后 x = 123.1234 等等。这在python中如何实现?
【问题讨论】:
-
你试过什么?也许您可以将其转换为字符串(假设不需要四舍五入)然后使用切片?
-
我还没试过,希望能在这里找到问题和答案,显然不是,所以我问了。
-
这个问题对于浮点数看起来相当复杂。甚至可能没有完全明确定义。我认为第一步是将
x表示为十进制数(浮点数不是十进制数)。也许这可以通过 python 的标准库模块 Decimal 来完成,或者巧妙地使用fractions.Fraction(x).limit_denominator() -
你想改变这个值,还是为了表示目的,例如打印?此外,通常人们知道他们想要多少有效的小数位,而不是从末尾删除多少。
-
以下似乎适用于浮点数:float = 123.456 n = 1 str = str(float) str = str[:-n] float(str) #123.45
标签: python python-3.x math floating-point