Re[12]: Смерть булевским аргументам!
От: jazzer Россия Skype: enerjazzer
Дата: 12.09.09 19:48
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, jazzer, Вы писали:


MC>>>И как ты этот факт собираешься использовать? Сравнивать некое значение с константой 180? Чем это будет отличаться от сравнения с константой M_PI?


J>>Иди почитай где-нть про сравнение чисел с плавающей запятой на равенство, в сети море информации на эту тему....


I>Сравнивать вычисленные значения нельзя, присвоенные — можно (если осторожно). И то, и другое относится как к сравнению со 180.0, так и к сравнению с M_PI.


Так и представил себе пользователя, вбивающего в окошечко "угод" пи с точностью до хз какого знака после запятой (ему ведь еще откуда-то надо знать, как именно выглядит M_PI на этой конкретной машине) А программа потом радостно сравнивает и говорит пользователю: "Не, это нифига не пи, ты в 54-м знаке ошибся!"

I>Пока ты оставался с целочисленным 180, у тебя была хоть какая-то (полувразумительная) почва под ногами, после того, как ты перешел к значению с плавающей запятой 180.0, в пользу градусов остался пожалуй единственный аргумент: некоторое удобство при отладке. Но оно сильно субъективно, а тормоза при вычислениях объективны.


Если бы это была "какая-то полувразумительная почва под ногами", то тогда в IrfanView, например, не было бы Lossless Jpeg Operation в виде поворота на углы, кратные 90 градусам (или 100 градам, или еще чему угодно, но только не целому числу радиан). Радианы нафиг никому не нужны, не удобны они для практических геометрических задач. Это в абстрактной математике есть совершенно точное число пи, и все формулы замечательно с ними записываются (и там действительно пофиг, радианы это или градусы или еще что), а у нас в компах с этим полная труба, и нам совсем не пофиг.

Например, если у тебя есть прямоугольный треугольник (т.е. с углом в 90 градусов), то ты можешь применять простейшие формулы из теоремы Пифагора и простейшие деления для поиска всяких синусов углов. А для произвольных углов (и для любых углов в радианах) тебе придется поднимать всю тяжелую артиллерию тригонометрии, потому что сравнивать с M_PI — дело неблагодарное.

Я вообще не понимаю, с чем ты споришь.
Твой аргументы аналогичны "для возведения в степень есть страшные формулы, вот и давайте юзать их, а то, что для возведения в степени двойки есть чудесная операция битового сдвига — тем хуже для нее"
ЗЫ Сейчас посмотрел историю — спор с этим аргументом затеял не ты, а netch80 — ну, значит, последний комментарий предназначается ему

Насчет значений с плавающей запятой — есть радикальная разница в представлении 180 и M_PI: 180 всегда представлена точно, а пи так представлена быть не может в принципе, и ты всегда будешь иметь дело с обрезаниями.
Т.е. если у тебя в программе есть поле ввода, откуда ты читаешь число с плавающей запятой, то 180 всегда будет точно 180 (буду рад услышать аргументацию, почему оно не может быть таковым), а вот с пи тебе придется туго.
Естественно, если ты над этими 180 будешь потом изгаляться, в результате у тебя в общем случае получится не точно 180, но если ты берешь как есть — оно будет точным, и в этом нет никакой разницы с целыми числами.
Поправь меня, если это не так.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.