Форум программистов, компьютерный форум CyberForum.ru

Непонятное поведение sscanf(.., "%lf", ..) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Упорядочить строки матрицы так, чтобы их первые элементы образовывали возрастающую последовательность http://www.cyberforum.ru/cpp-beginners/thread384471.html
Здравствуйте уважаемые програмисты помогите пожалуйста с задачами 1)Дана матрица размера M × N. Упорядочить ее строки так, чтобы их первые элементы образовывали возрастающую последовательность. 2)Дана квадратная матрица A порядка M. Найти максимальный элемент для каждой ее диагонали, параллельной побочной (начиная с одноэле-ментной диагонали A1,1). заранее спасибо!
C++ Работа с бинарными файлами Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл f, содержащий информацию о багаже нескольких пассажиров, информация о багаже каждого отдельного пассажира представляет собой соответствующую пару чисел. Найти багаж, средний вес вещи в котором меньше общего среднего веса вещи по данным всего файла. Полученные сведения записать в файл g. На С++ http://www.cyberforum.ru/cpp-beginners/thread384470.html
C++ Тонкости быстрой сортировки
Излазил кучу мест в сети. Нашел массу этих алгоритмов, но на поверку практически каждый не совсем работающий. Представляется, что в этой сортировке есть какая-то тонкость, но какая вот? Вот часть моего кода, осуществляющая патишинирование. Не могу понять правильно она рабботает или нет. По отдельности вроде правильно (ну в смысле, когда оформляется в виде отдельной функции: вот так: ...
разница между произведениями C++
найти разницу между произведениями чисел натурального ряда от 1 до 10,что стоят на парных и непарных местах. -входные данные вводятся из клавиатуры -результат вывести на экран
C++ В квадратной матрице вычислить сумму элементов, расположенных на одной горизонтали http://www.cyberforum.ru/cpp-beginners/thread384439.html
Память под хранение матричных данных должна выделяться динамически в 2 этапа: выделение памяти для хранения указателей на строки, выделение памяти для хранения элементов каждой строки. Освобождение – аналогично, но в обратном порядке. Работа с динамической памятью – new, delete. _____________________________________________________________________________________________ В квадратной матрице...
C++ Вывести папку другого уровня. С помощью SetCurrentDirectory установлена текущая директория : Корень:\\Папка1\\Папка2 Нужно установить текущей Папку1. То есть, сначала текущая Папка2, затем надо сделать текущей Папку1. подробнее

Показать сообщение отдельно
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
18.11.2011, 13:04     Непонятное поведение sscanf(.., "%lf", ..)
Цитата Сообщение от VIKT0R Посмотреть сообщение
Хотелось бы понимать, так сказать, "физику процесса"; откуда набегает эта погрешность?
Как наверное тебе известно, числа в компьютере хранятся в двоичном виде. С представлением целых чисел проблем нет, а вот с дробными не все так посто - не всякое дробное число можно представить конечным количеством бит. К таким числам относится и 0.4, в двоичном виде оно будет представлять собой периодическую дробь 0.(0110). И естественно, все число не может быть представлено в памяти компьютера, все что не помещается будет просто отброшенно. На примере типа double, для хранения мантиссы отводится 52 бита, у нас есть число 18.4, целая часть займет 4 бита, для дробной части останется 48 бит. Если мы теперь переведем в десятичную систему первы 48 разрядов дроби 0.(0110), то получим как раз 0.3(9).
 
Текущее время: 22:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru