如何在 python 中创建舍入函数
How to make a rounding function in python
在 python 中,我试图在不使用大多数内置函数的情况下创建一个程序 python 这对我来说是一个额外的挑战。我想知道如何在 python 中实现类似于 python 模块的舍入函数。我该怎么做。
这是我的代码目前的样子:
def rounding(number, decimal):
return int(1 * number - 0.5)+1
print(rounding(36.9782, 1))
这会将数字四舍五入为完整数字,但不会将数字四舍五入到任何小数位。我该怎么做?
你的代码很好,但你遗漏了一件事。您需要将数字乘以 10 的位数次方,然后在最后将其除以相同的数字,如下所示:
def rounding(number, decimal=0):
return (int(pow(10, decimal) * number - 0.5)+1) / pow(10, decimal)
print(rounding(36.9782, 3))
这给出了 36.878
的输出。我们在函数中将 decimal 设置为 0 的原因是当没有给出 decimal 时,它会自动舍入为整数,就像内置的 round 函数一样。
在 python 中,我试图在不使用大多数内置函数的情况下创建一个程序 python 这对我来说是一个额外的挑战。我想知道如何在 python 中实现类似于 python 模块的舍入函数。我该怎么做。
这是我的代码目前的样子:
def rounding(number, decimal):
return int(1 * number - 0.5)+1
print(rounding(36.9782, 1))
这会将数字四舍五入为完整数字,但不会将数字四舍五入到任何小数位。我该怎么做?
你的代码很好,但你遗漏了一件事。您需要将数字乘以 10 的位数次方,然后在最后将其除以相同的数字,如下所示:
def rounding(number, decimal=0):
return (int(pow(10, decimal) * number - 0.5)+1) / pow(10, decimal)
print(rounding(36.9782, 3))
这给出了 36.878
的输出。我们在函数中将 decimal 设置为 0 的原因是当没有给出 decimal 时,它会自动舍入为整数,就像内置的 round 函数一样。