我需要计算任何正多边形的面积。我从一个好的'google:
获得了这个公式(n * l**2) / (4 * math.tan((180/n) * (math.pi/180)))
无论我如何使用decimal.Decimal
这些值,我都无法按预期使用它。 n
和l
以浮点数形式提供。
有人可以将十进制对象应用于此吗?当n
为4且l
为2时,它应返回4
,但目前它会返回4.00000000000000156234
(或沿着这些行的某些内容)。
答案 0 :(得分:1)
您需要设置小数对象的精度。 Pi是无限的十进制数,因此精度不会是整数。
你可以做到
from decimal import *
getcontext().prec = 1
或通过向下舍入添加到小数对象。
>>> Decimal('7.325').quantize(Decimal('.01'), rounding=ROUND_DOWN)
Decimal('7.32')