Спокойной ночи, у меня проблема с writeln на Embarcadero 10.2, я пытаюсь написать функцию sin () как бесконечную серию расширений Тейлора.
Все работает нормально, но вывод находится в научном выражении, например: 3.60448486921676E-0158, когда правильным было 0.912945250727627654376099983845.
Мне нужна точность 30 цифр.Мой код ниже, это консольная программа.
program Project1;
{$APPTYPE CONSOLE}
uses
System.SysUtils,
Windows,
Math;
function fact(n: LongInt): extended;
begin
if (n = 0) then
fact := 1
else
fact := n * fact(n - 1);
end;
var
one:integer;
fin:extended;
number:LongInt;
i:integer;
cons:LongInt;
cons1:extended;
begin
one := -1;
writeln('Digite o angulo em radianos para o Seno: ');
readln(number);
for i := 1 to 120 do
begin
cons := (2*i)+1;
if(i mod 2) = 0 then
one := 1
else
one := -1;
cons1 := fact(cons);
fin := (one/cons1)*(power(number,cons));
cons := 0;
end;
writeln(fin);
readln;
end.