Проблемка
- Войдите на сайт для отправки комментариев
Вс, 30/11/2014 - 21:35
Добрый день,
Не знаю в чем,но в простом примере,где надо сложить <-2> и <2>,и все это поделить на <2>,то вместо <0> получается <-5,96046е-008>.Почему? Кто знает?
Вот,примерно,как выглядит код:
float x1 = -2;
float x2 = 2;
float y = (x1 + x2)/2;
попробуйте вместо 2 писать 2.0 , чтобы компилятор правильно определял тип данных.
Си очень точный язык, поэтому данные надо тоже точно передавать.
попробуйте вместо 2 писать 2.0 , чтобы компилятор правильно определял тип данных.
Си очень точный язык, поэтому данные надо тоже точно передавать.
Подозреваю, что Си, как раз правильно все посчитает, а вот Вайринг чудит.
float - это "приблизительное" число.
Ваше -5,96046е-008
это -0,0000000596046
очень близко к нулю, по-моему.
см. "компьютерный способ" http://ru.m.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D0%BD%D0%B...
Тогда проще вывод форматировать, остави после запятой 2-3 знака.
еще варианты - перейти на целочисленные типы или округлять, в зависимости от задач.