ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 апреля
714160 Топик полностью
Ксения (20.11.2016 15:12, просмотров: 89) ответил Олдфаг на В результате арифметических действий с плавающей точкой с нормальными вх. данными на выходе изредка получается -0. Понятно откуда, и бороться умею (немного геморройно), но мест появления может быть несколько да и некрасиво и в конце
На самом деле там не минус нуль, а мелкое отрицательное число. А не видите вы этого, вероятно, потому, что распечатываете форматом %f. Распечатайте форматом %g и поймете в чем дело. Чтобы избавиться от минуса, надо не компилятор мучить, а делать округление до скольких-то знаков после запятой, тогда и минус исчезнет. Впрочем, есть способ проще - прибавлять что-то вроде 1e-5, а конкретно 5 единиц 1-го невидимого разряда. Т.е. дело тут в том, что printf печатает, но не округляет. Особенно на микроконтроллерах.