Почему моя строка не отображается с десятичными точками, которые я хочу? - PullRequest
1 голос
/ 09 января 2020

Я пытаюсь создать программу, в которой, если я введу степень, она преобразует ее в радианы, а затем вычисляет ее синус, косинус и тангенс, используя теорию Тейлора. Обратите внимание, что я не должен вызывать математический модуль.

def sinAns(rad):
    rad=rad
    radPlaceHolder=rad
    counter=0
    numberForFacto=1
    tOld=rad
    tNew=0
    tPlaceHolder=rad
    pr=precision+1
    tDiff=1
    sinAns=0

    while abs(tDiff)>.5*10**(-pr):       
        tOld=tPlaceHolder
        tNew=(-1*tOld*rad*rad)/((numberForFacto+1)*(numberForFacto+2))
        tPlaceHolder=tNew       
        counter+=1
        numberForFacto+=2
        tDiff=abs(tOld)-abs(tNew)
        radPlaceHolder+=tNew
        sinAns=radPlaceHolder
    return sinAns

Так выглядит мой код для вычисления синуса.

print("{0:}{1:{2}f}".format("sin= ", sinAns(rad), precision))

Это строка, в которой печатается значение позже в программе, и у меня уже есть точность по умолчанию 10. Но когда я запускаю программу, она отображает 0.500000 вместо точности, которой я хочу быть. Даже если я изменю точность на любое другое значение в диапазоне от 2 до 10, оно ВСЕГДА показывает 0,500000.

Есть идеи, как это исправить? В течение часа вертелись и до сих пор не поняли.

1 Ответ

2 голосов
/ 09 января 2020

Вам не хватает точки .:

print("{0}{1:.{2}f}".format("sin= ", sinAns(rad), precision))
           # ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...