RoundTo не спасет?
Просто "сбрось" немного точность.
Что-то типа такого:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Grad : Double;
begin
If TryStrToFloat(Edit1.Text,Grad)
Then Edit2.Text := FloatToStr(RoundTo(Sin(Grad*PI/180),-8))
Else ShowMessage('Can''t convert string to number.');
end;