Отрицательный ноль в С (как сравнить с обычным нулем)? fabs и abs не работают.

C++ Программирование

в массиве вещественных чисел получается отрицательный ноль. При пересчете ноли не используются (и все что больше ноля). А отрицательный ноль за ноль не воспринимается. Как его приравнять к нулю, или как сделать так, чтобы он воспринимался как обычный ноль.
Ответы:
Это не отрицательный ноль, потому что в С "отрицательный ноль" равен "положительному", скоре всего у вас очень маленькое число, близкое к нулю.
отрицательный ноль - это, скорее всего, какое-то очень маленькой отрицательное число. Можно указать требуемую тебе точночть и всё что меньше - делать нулём.
Попробуйте управлять округлением.
fegetround и fesetround
(они определены в С99, для BSD-систем есть системные fpgetround и fpsetround)
Если в массиве вещественных числе получается что-то страшное, то, скорее всего, это нечисло (вот так вот в одно слово) - от английского not-a-number. И это нормально! Это самое нечисло обладает тем свойством, что оно ничему не равно. ДАЖЕ самому себе. Пробегитесь по массиву и сравните каждый элемент с самим собой. Если вдруг кто-то не равен самому себе - замените его нулем.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.