|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.06.2008, 13:09 | #1 |
Пользователь
Регистрация: 04.06.2008
Сообщений: 32
|
Тригонометрия
Здравствуйте!
пишу программку, которая должна вычислить sin, cos и tg. Пользователь вводит значения в градусах в Edit1, и нажимает кнопку. label1 выводит результат. Код:
но вот никак не пойму - когда я ввожу 180 или 360 Программка выдает мне всякую ерунду типа: 1,22460635382238E-16 или -2,44921270764475E-16 |
04.06.2008, 13:16 | #2 |
Пользователь
Регистрация: 25.05.2008
Сообщений: 75
|
Ну правильно, так и должно быть. Если вам нужно откинуть дробную часть используйте div, тогда программа будет выдавать целое число.
|
04.06.2008, 13:22 | #3 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
Просто синус 180 равен нулю..... Чтото тут не так....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
04.06.2008, 13:28 | #4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
|
04.06.2008, 13:30 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
04.06.2008, 13:47 | #6 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
Ага.. понятно с чем связанно...
Код:
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
04.06.2008, 14:09 | #7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Карась, ну это ведь уже "бородатый анекдот" Обычное "нестрогое" равенство при использовании плавающей точки. Достаточно посмотреть, что вернёт просто sin(PI). Кстати, единственный способ получить так строго 0, которого удалось добиться - это интеловский фортран и шикарный тип REAL(16), он же quadruple precision. Всё остальное - округлять.
|
04.06.2008, 17:16 | #8 |
Пользователь
Регистрация: 04.06.2008
Сообщений: 32
|
ясненько, спасиб)))
Код:
|
04.06.2008, 17:51 | #9 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
В модуле Math есть функция проверки на равенство нулю. Величина погрешности зависит от количества значащих цифр для каждого типа переменной. Перед выводом результата можно добавить следующее:
Код:
|