I would need to have a float variable rounded to 2 significant digits and store the result into a new variable (or the same of before, it doesn't matter) but this is what happens:

>>> a
981.32000000000005
>>> b= round(a,2)
>>> b
981.32000000000005

我需要这个结果,但进入一个变量,不能是字符串,因为我需要插入它作为浮动。。。
>>> print b
981.32

最佳答案

你要做的事实上是不可能的。。closest double precision binary floating point value是:

981.3200000000000500222085975110530853271484375

我想这可能会让你感到震惊。。
You might choose to tackle your problem in one of the following ways:
接受二进制浮点数不能准确地表示这些值,并继续使用它们。。如果希望将值显示为文本,请将其格式化,以便仅发出两个小数位。
使用能准确表示数字的数据类型。这意味着十进制而不是二进制类型。在Python中,您将使用981.32

10-04 21:45