圆函数在python中不起作用

时间:2011-01-26 18:57:37

标签: python rounding

如何完善功能。

我在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 个答案:

答案 0 :(得分:2)

你是如何得到这个号码的?如果它是自动生成的,它必须是一个字符串。在使用float(number.replace(',',''))作为回合参数时,请执行number

答案 1 :(得分:2)

两个问题:

  • round(3,98.9898, 2)输入的代码。自己省略逗号,你的问题就消失了。否则,请向我们提供有关您的问题的更多信息。

  • def round(x, n): return round(x, n)
    即使您修复了函数调用,由于最大递归,您很可能最终得到RuntimeError。将您的函数重命名为round以外的其他内容。

答案 2 :(得分:1)

是的,这是逗号。一个数字不能包含逗号。只应添加逗号用于显示目的,所有计算之后,可以在将数字转换为字符串后完成。

如果您正在处理用户输入,那么它将是一个字符串,您必须在转换为float / int之前删除逗号。


我要退一步,从基础开始。这是您的实际代码吗?

round(3,98.9898, 2)

如果是这样,您将三个参数传递给函数:398.98982,但该函数只接受两个。也许你的意思是以下之一:

round(98.9898, 2)
round (398.9898, 2)

或其他一些变体?

答案 3 :(得分:1)

是的,这是逗号。在Python中创建浮点数,您只使用该点。逗号做了很多其他事情!

编辑:你想做什么?你的号码是多少?