Вывод возвращается в строковом формате, а не в int. Например: функция возвращает «1563.7383» вместо 1563.7383 - PullRequest
0 голосов
/ 30 августа 2018
def polysum(n,s):
    import math
    r = math.pi/n
    area = ((0.25)*n*(s**2))/ math.tan(r)
    per = n*s
    total = area + (per**2)
    return ("%.4f" % total)

Выходные данные возвращаются в строковом формате, а не в int. Например: функция возвращает «1563.7383» вместо 1563.7383

1 Ответ

0 голосов
/ 30 августа 2018

Вы не добавили языковой тег в свой вопрос, но, судя по синтаксису, я предполагаю, что это Python.

Во-первых, обратите внимание, что 1563.7383 не может быть int, но может быть float.

Ваша проблема в использовании "%.4f" % total, который преобразует total в строку с 4 десятичными знаками.

Вы, вероятно, должны просто возвращать total в своей функции (т. Е. Обрабатывать ее как float, без округления, во всей вашей программе). Округляйте его, используя "%.4f" % total, только когда вы выводите значение.

В качестве альтернативы, если вам абсолютно необходимо округлить значение в вашей функции и иметь его как float, рассмотрите возможность использования встроенной функции round(). Ваше использование будет тогда return round(total, 4)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...