|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.04.2012, 18:16 | #1 |
Регистрация: 03.04.2012
Сообщений: 4
|
проблема с sin
Здравствуйте! я делаю калькулятор на Delphi. в данном случае я ввожу любое число в Edit1. затем нажимаю на button1, которая имеет следующий код:
edit1.text:=floattostr(sin(strtoflo at(edit1.Text)*pi/180)); все идет отлично, но стоит ввести число в edit1 180, 540 и все числа, где синус x будет равен 0, выдает число -5,42101086242752E-20 почему это происходит и как это исправить? Последний раз редактировалось DJEK-ROUTER; 03.04.2012 в 18:25. |
03.04.2012, 18:27 | #2 |
Заблокирован
Регистрация: 21.06.2010
Сообщений: 77
|
все правильно пишет
|
03.04.2012, 18:34 | #3 |
Регистрация: 03.04.2012
Сообщений: 4
|
у вас sin(180)=0? а почему тогда у меня sin(180) выдает неправильный ответ?(((
|
03.04.2012, 18:39 | #4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
03.04.2012, 19:40 | #5 | |
Заблокирован
Регистрация: 21.06.2010
Сообщений: 77
|
Цитата:
или ты незнаеш что хочеш,вот так видит твою формулу комп sin(180*pi/180) в итоге sin(pi) Последний раз редактировалось robt; 03.04.2012 в 19:42. |
|
03.04.2012, 19:46 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Со скобками все нормально и градусы в радианы тоже нормально переводятся
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
03.04.2012, 19:54 | #7 |
Заблокирован
Регистрация: 21.06.2010
Сообщений: 77
|
|
03.04.2012, 19:58 | #8 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
означает -5.421010 * 10^-20 или, если записать в более привычной форме: -0.0000000000000000000542101086242 это погрешности представления числа в машинном виде. для понимания сути происходящего очень рекомендую сходить в ЭТОТ мой пост и пройтись по ссылкам. и, как было справедливо сказано выше - округляйте его хотя бы до 15 знаков после запятой, получите ноль... ____________ Цитата:
и, очевидно, что TC в Edit1.Text задаёт число 180 - величину угла в ГРАДУСАХ. а в формуле они (правильно!) переводятся в радианы! Последний раз редактировалось Serge_Bliznykov; 03.04.2012 в 20:07. |
||
03.04.2012, 20:14 | #9 |
Заблокирован
Регистрация: 21.06.2010
Сообщений: 77
|
|
03.04.2012, 20:15 | #10 |
Регистрация: 03.04.2012
Сообщений: 4
|
я все понял) спасибо за помощь!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Паскаль Вычислить у - первое из чисел sin х, sin sin x, sin sin sin x, ..., меньшее по модулю 10-4 | Kikikiss | Помощь студентам | 2 | 25.03.2012 13:58 |
Вычисление суммы:sinx+sin(sinx)+sin(sin(sinx)) ..+..sin(..(sinx)) на дельфи | Nach | Помощь студентам | 3 | 16.11.2011 10:05 |
Функция y=2cos(3пx)sin(пx)+(sin(3пx)/x) | ofenod | Microsoft Office Excel | 5 | 07.04.2011 03:22 |