LINUX.ORG.RU
ФорумTalks

А есть ли язык программирования, где нет == для float?


0

0

С руганью за-fail-ил code review фичи, увидев проверку вещественных чисел на равенство(==) и задался вопросом: а изобрело ли человечество такой язык программирования, в котором операторов == и != для вещественных чисел попросту нет.

Да, я знаю, что в сиплюсплюсе через #define и перегрузку это реализуемо, но интересует именно искоробочность решения.

Заодно хотелось бы услышать мнение уважаемой аудитории о причинах, побудивших авторов популярных языков подложить столь дурно пахнущую свинью.

★★
Ответ на: комментарий от KRoN73

>Интересно, что с этим в Аде?
В Аде определение типа с плавающей запятой обязательно содержит число значащих десятичных разрядов после запятой.
Примеры:
type Coefficient is digits 10 range –1.0 .. 1.0;
type Real is digits 8;
type Mass is digits 7 range 0.0 .. 1.0E35;

anonymous
()

Ты не учитываешь одну вещь: арифметика с float-ами может быть вполне *точной*, если там целые числа.

Более того, в те древние времена, когда не было long long, общая практика была юзать double для больших целых чисел.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от anonymous

> В Аде определение типа с плавающей запятой обязательно содержит число значащих десятичных разрядов после запятой.

Подозреваю что *не* обязательно.

А адовские целые-разделенные-на-10-в-степени-эн собираются ввести в плюсы.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

>Подозреваю что *не* обязательно.

Вот тебе грамматика, Нострадамус: floating_point_definition ::= digits static_expression [real_range_specification]

Посмотри в стандарт (3.5.7 Floating Point Types) и убедись. Я говорю про Ада95.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.