Напомните, почему в 2020 последние версии интерпретируемых языков (кроме R) по-прежнему считают, что 0.1 + 0.2 = 0.30000000000000004? Неужели боятся сломать совместимость каким-то шизоидам, которые пользовались такими вычислениями?
Пугающее количество «специалистов» не знает, что числа с плавающей точкой обрабатываются в аппаратной реализации сложного стандарта, и что подобные проверки равенства абсолютно неграмотны.
@ceyt Кого это ебет вообще? 2020 на дворе, але. Я могу в три клика деплоить на сотню разнородных кластеров виртуалок, а мне говорят, что видите ли у нас стандарт вычислений для float с 1945 года не менялся, поэтому ты не можешь сравнивать числа в десятичном представлении?
@anonymous Хуи ты сосешь в 2020 году. Перед тем, как задеплоить что-то осмысленное на сотню машин, тебе предстоит еще много узнать о том, как устроен мир.
@komar Мне п о х у й, как там комплюхтер считает свои флоаты. Я пишу в естественной для своих времени и места десятичной системе и подразумеваю, что без исключений 0.2 == 2/10, а не хуй пойми что с приблизительной точностью.
@anonymous Ты спокойно можешь нахлобучить сверху перегрузку оператора сравнения для выбранного предела точности. Проблема в том, что ты не понимаешь, как это работает, и потом получишь своими граблями в лоб.
@komar Самое охуительное, что в рельсах, где можно как числа отнимать ДАТЫ с учетом всех високосных годов, оставили эту срань с плавающей точкой в изначальном виде, как будто кого-то обидеть боялись.
@anonymous В реальном мире именно рублям и копейкам продумывают отдельную структуру данных с отдельными функциями, потому что бухгалтерское округление и прочие правила, а суммы любого количества любых полей за любой период обязаны совпадать.
Для решения твоей задачи давно есть рациональные типы данных, пользуйся.
@anonymous Долбоеб бьется головой о стену и всем рассказывает про неправильные стены и как ему на них похуй.
Похуй тебе на флоаты — отлично. Не ебись с флоатами, решай задачу. Задача решается так: открываешь жоожле, вводишь «тип данных для копеек», читаешь первый стаковерфлоу.
@anonymous Под аппаратные ограничения подстроился ты сам, когда полез микроскопом гвозди забивать, потому что молоток брать — это сложно, а микроскоп вот он, рядом режит.
@komar Ладно, но почему когда я ввожу циферки в консоль, они по умолчанию Float, а не вот это вот? Разве я по умолчанию могу хотеть неточный результат?
Пугающее количество «специалистов» не знает, что числа с плавающей точкой обрабатываются в аппаратной реализации сложного стандарта, и что подобные проверки равенства абсолютно неграмотны.
@anonymous Ты спокойно можешь нахлобучить сверху перегрузку оператора сравнения для выбранного предела точности. Проблема в том, что ты не понимаешь, как это работает, и потом получишь своими граблями в лоб.
@anonymous В реальном мире именно рублям и копейкам продумывают отдельную структуру данных с отдельными функциями, потому что бухгалтерское округление и прочие правила, а суммы любого количества любых полей за любой период обязаны совпадать.
Для решения твоей задачи давно есть рациональные типы данных, пользуйся.
@komar Ввёл в «Яндекс», получил https://htmlforum.io/topic/14763-какой-тип-данных-выбрать-для-денег/
Спасибо!