我定义了一个函数总体密度并返回该值。如何定义函数并将值限制为5个小数?
#write your function here:
def population_density(population, area):
calc = (population/area)
return(calc)
# test cases for your function
test2 = population_density(864816, 121.4)
expected_result2 = 7123.6902801
print("expected re`strong text`sult: {}, actual result: {}".format(expected_result2,
test2))
答案 0 :(得分:2)
您可以使用round函数来做到这一点!
def population_density(population, area):
calc = population/area
return round(calc, 5)
答案 1 :(得分:1)
快速注释:Python中的舍入可能并不总是能按预期进行。谨慎操作。
我认为round(number[, ndigits])
函数在这里最简单。对于您的情况,您似乎希望始终将其舍入到5位小数。我们可以在返回值中强制这样做:
def population_density(population, area):
calc = (population/area)
return(round(calc, 5))
或者,出于各种原因,您可能需要指定要舍入的位数。我们可以使用新参数round_
来完成此操作:
def population_density(population, area, round_):
calc = (population/area)
return(round(calc, round_))
您可以在此处详细了解round()
:
https://docs.python.org/3/library/functions.html#round
正如您将在文档中看到的那样,当值以您不期望的方式取整时,
这不是一个错误:这是由于大多数小数部分不能完全以浮点数表示的结果。
答案 2 :(得分:0)
最好使用decimal.Decimal
,以免损失精度。
>>> from decimal import Decimal
>>> a = Decimal('7123.6902801')
>>> round(a, 5)
Decimal('7123.69028')
如果您只想打印,则可以将其格式化为某些小数位,而无需更改/创建值:
>>> "{0:.5f}".format(Decimal('7123.6902801'))