Python中的round函数无效

-6 投票
4 回答
3271 浏览
提问于 2025-04-16 10:40

我该怎么把一个函数的结果四舍五入呢?

我在Python中有以下代码:

def round(x,n):
    return round(x,n)

我遇到了以下错误:

>>> round(3,98.9898, 2)

Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
round(3,98.9898, 2)
TypeError: round() takes exactly 2 arguments (3 given)

我觉得是逗号导致了这个问题。

有什么建议吗……谢谢!

我试过这个:

def round(x,n):    
    return round(float(x.replace(",", "")),n)

但没有成功。

4 个回答

1

没错,是逗号。在Python中,要创建浮点数(也就是小数),你只需要用点(.)。而逗号有很多其他的用处!

补充一下:你想做什么呢?你的数字是什么?

2

你是怎么得到那个数字的?如果是自动生成的,那它应该是个字符串。在你把这个 number 用作四舍五入的参数时,先用 float(number.replace(',','')) 把它转换一下。

3

有两个问题:

  • round(3,98.9898, 2) 是你自己输入的代码。把逗号去掉,你的问题就解决了。要不然请告诉我们更多关于你问题的信息。

  • def round(x, n): return round(x, n)
    即使你修正了函数的调用,你很可能还是会遇到 RuntimeError,这是因为最大递归深度的问题。把你的函数改个名字,不要叫 round

撰写回答