Использование std::less<double> [требует правки]

414
04 февраля 2017, 09:14

Почему выражение ложно?

if( double(0.983450) < double(0.100000) ) printf( "true" ); else printf( "false" );

Читал*, что полагаться на операторы <> нельзя для типа double. Как использовать std::less для такого сравнения?

EDIT поскольку вопрос был вызван опечаткой во входных данных, для устранения его бессмысленности предлагаю следующую редакцию:

Как использовать std::less, std::greater и др. для сравнения?

p.s. либо удалить/снять вопрос, буду признателен за подсказку, как это сделать.

Answer 1

Простите, а что, 0.98 уже меньше 0.1, чтобы выражение было истинным?!!

Выражение

double(0.983450) < double(0.100000) 

(кстати, double можно не писать, по умолчанию константы с плавающей точкой - double) ложно, потому что 0.98 на самом деле больше 0.1...

По вашей ссылке в ответе четко написано:

You can be a 100% sure about the correctness of the result of those operators.

READ ALSO
Можно ли объединить запросы в один

Можно ли объединить запросы в один

Доброе время суток, Можно ли объединить следующие запросы в один запрос?:

424
Фрагменты или списки

Фрагменты или списки

ПриветствуюСоздаю свое первое клиент-серверное приложение, поэтому хочу проконсультироваться с более опытными разработчиками

434
Отправка файла через JSON на Java

Отправка файла через JSON на Java

Пытаюсь в приложении на андроид закодировать фото в base64, чтобы отправить его на серверОднако результаты нулевые

445
Android. Добавить контакт во временную адресную книгу

Android. Добавить контакт во временную адресную книгу

Есть следующая задача: когда приходит звонок, он отображается в "Журнале вызовов" бывает ситуация, когда пользователю нужно временно сохранить...

408