IgorK11 Опубликовано 27 апреля, 2020 Поделиться Опубликовано 27 апреля, 2020 У всех не целых чисел вылезают левые значение. Подскажите пожалуйся как это победить? Delphi 10.3 Version 26.0.36039.7899 Цитата Ссылка на комментарий
0 Slym Опубликовано 28 апреля, 2020 Поделиться Опубликовано 28 апреля, 2020 Никак. Читайте что такое числа с плавающей точкой. 1 правило работы с плавающей точкой: Нельзя проверять 2 числа на равенство оператором = нельзя: const dx:double=143.201; const sx:single=143.201; begin assert(dx=sx); end; Ingalime 1 Цитата Ссылка на комментарий
0 dnekrasov Опубликовано 2 мая, 2020 Поделиться Опубликовано 2 мая, 2020 В 28.04.2020 в 06:20, Slym сказал: 1 правило работы с плавающей точкой: Нельзя проверять 2 числа на равенство оператором = нельзя От себя добавлю - для сравнения есть чудесная функция System.Math.CompareValue Ещё гляньте System.Math.Vectors.TEpsilon - там есть полезные константы Ingalime 1 Цитата Ссылка на комментарий
Вопрос
IgorK11
У всех не целых чисел вылезают левые значение.
Подскажите пожалуйся как это победить?
Delphi 10.3 Version 26.0.36039.7899
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.