-
- На самом деле там не минус нуль, а мелкое отрицательное число. А не видите вы этого, вероятно, потому, что распечатываете форматом %f. Распечатайте форматом %g и поймете в чем дело. Чтобы избавиться от минуса, надо не компилятор мучить, а делать Ксения(267 знак., 20.11.2016 15:12)
- Тап кажись настоящий ноль, то есть все 31 биты нули, а знаковый 1. Но пока имею мало статистики. - Олдфаг(20.11.2016 15:18, )
- Все равно прибавление минимального флоата вам поможет, т.к. изменит знак в плюс, а точность ухудшит незначительно. Ксения(177 знак., 20.11.2016 15:38 - 15:41)
- У меня таких мест несколько. В каждом прибавишь и будет как в поговорке "Курочка по зёрнышку, а весь двор в г...". Я пока функцией copysign пробавляюсь, она ловит. - Олдфаг(20.11.2016 15:48, )
- Все равно прибавление минимального флоата вам поможет, т.к. изменит знак в плюс, а точность ухудшит незначительно. Ксения(177 знак., 20.11.2016 15:38 - 15:41)
- Тап кажись настоящий ноль, то есть все 31 биты нули, а знаковый 1. Но пока имею мало статистики. - Олдфаг(20.11.2016 15:18, )
- Где нить посередине что нить переполняется. Типа деления на очень маленькое число. - ASDFS(20.11.2016 15:06)
- Да не, это проще и все корректно; например, честный 0.0 делится на честное отриц. число. Дальнейшие сложения вычитания это не убивают. - Олдфаг(20.11.2016 15:09, )
- IF'ы, кстати эти тонкости пропускают, для них минус 0 равен нулю, поэтому отлавливать таку херню надо специальными методами. - Олдфаг(20.11.2016 15:13, )
- Да вообще
с нулёмсравнивать трудно. Плавающие числа я имею ввиду. fk0(82 знак., 20.11.2016 15:16)
- Да вообще
- Не понимаю, чего ты хочешь. Ноль-то отрицательный теперь. - fk0(20.11.2016 15:12)
- Ноль только для нашего плавающего IEEE двуполярный, а в арифметике 0 деленный на число должен быть ч0тким нулём. - Олдфаг(20.11.2016 15:16, )
- IF'ы, кстати эти тонкости пропускают, для них минус 0 равен нулю, поэтому отлавливать таку херню надо специальными методами. - Олдфаг(20.11.2016 15:13, )
- Да не, это проще и все корректно; например, честный 0.0 делится на честное отриц. число. Дальнейшие сложения вычитания это не убивают. - Олдфаг(20.11.2016 15:09, )
- На самом деле там не минус нуль, а мелкое отрицательное число. А не видите вы этого, вероятно, потому, что распечатываете форматом %f. Распечатайте форматом %g и поймете в чем дело. Чтобы избавиться от минуса, надо не компилятор мучить, а делать Ксения(267 знак., 20.11.2016 15:12)