| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Арифметические Операции С Элементами Массива |
| Автор: prolonizi 15.9.2014, 20:41 | ||
| Добрый день! Никак не могу сообразить, почему получается следующий результат
Должно выводить 0, а выдаёт какой-то невразумительный ответ -5.55112e-017 Подскажите пожалуйста, что не так? |
| Автор: sQu1rr 15.9.2014, 21:19 |
| Давайте вы попробуете написать то же самое, только по человечески. |
| Автор: Dukaloholpiti 16.9.2014, 04:21 |
| Ну потому что -5.55112e-017 - это очень маленькое число, это и есть ноль (т.н. машинный ноль). Но у вас же дробные числа, да еще двойной точности. "0", который вы хотите получить - это целое число. Дак вот в компутере возникают погрешности при вычислениях и вот эти погрешности вы и получили себе на экран ( -5.55112e-017) Сообщение отредактировал r04 - 1:06:2014, 06:52 |
| Автор: sQu1rr 16.9.2014, 10:12 |
| Если разумеетя англицкий, вот хорошее объяснение почему так происходит https://www.youtube.com/watch?v=PZRI1IfStY0&list=UU9-y-6csu5WGm29I7JiwpnA |
| Автор: prolonizi 16.9.2014, 10:41 |
| спасибо за ответ) хм...а можно как-то всё таки 0 получить? Может используя библиотеку какую? Вроде элементарная задача - отнять два равных числа друг из друга и получить ноль. Такой результат мне надо получить в рамках задачи разработки алгоритма метода исключения Гаусса (решение системы линейн уравненний). Т.е нужно будет умножать первую строку матрицы на коэффициент и вычитать полученную строку из других строк. |
| Автор: baldina 16.9.2014, 14:19 | ||
|
| Автор: borisbn 16.9.2014, 20:22 | ||||||||
А лучше так
А если уж совсем по-извращенски, то
|