Особенности чисел с плавающей (1114931)
Текст из файла
Учебные материалы для 2 курсаГлавная страницаЗанятия по языку СиЗанятия попрограммированию вUnixМатериалы длядополнительного чтенияКонспекты занятий поязыку Си++Опции компилятора насервере (C)Опции компилятора насервере (C++)Стиль форматированияпрограммО вещественных числахО рекурсивном спускеО написании MakefileЗадание намоделирование кешаДокументация по STLСсылкиПамятка по работе в UnixЛекции по ОС для КазФМГУОсобенности чисел с плавающейточкойМножество значений, представимых в типах float, double иlong double кроме обычных конечных значений содержит триспециальных значения NaN, -Inf, Inf.Значение NaNЗначение NaN (NotaNumber) используется для того, чтобысигнализировать о том, что результат некоторой операции неможет быть вычислен изза неопределенностей различногорода.Например, операция 0.0/0.0 даст результатом NaN.На самом деле в вещественных типах представимо целоесемейство значений NaN, дополнительная информация оконкретном NaNзначении может быть использована как кодошибки.Все функции перевода из строкового представления ввещественное значение, такие как *scanf, strtod и т. п.распознают строку NAN (независимо от регистра букв) ивозвращают значение NaN.Все функции перевода из вещественного значения в строковоепредставление, такие как *printf распознают значение NaN ивыводят его в виде строки nan.Результат операции с числами с плавающей точкой, такой каксложение, умножение и т. д. равен NaN, если один изаргументов операции равен NaN.Если один из операндов операции сравнения равен NaN,операции сравнения дают следующий результат:==0!=1< 0<=0> 0>=0Чтобы проверить вещественное значение на принадлежность кклассу NaN можно использовать функции fpclassify илиisnan.#include <math.h>//...if (fpclassify(value) == FP_NAN) {// значение value является NaN}// или другой вариантif (isnan(value)) {// значение value является NaN}В силу свойств значения NaN мы будем полагать, чтопоследовательность чисел с плавающей точкой не может бытьупорядочена, если в ней содержится элемент NaNЗначения -Inf, InfЭти значения представляют результат "бесконечность"который может возникать при выполнениях различныхопераций с плавающей точкой.Например, 1.0/0.0 дает результат Inf, а -1.0/0.0 даетрезультат -Inf.Все функции перевода из строкового представления ввещественное значение, такие как *scanf, strtod и т. п.распознают строку [+|-]INF (независимо от регистра букв) ивозвращают значение Inf с соответствующим знаком.Все функции перевода из вещественного значения в строковоепредставление, такие как *printf распознают значение Inf ивыводят его в виде строки inf с соответствующим знаком.Значения Inf, -Inf в операциях сравнения ведут себяестественным образом, например, следующие условияистинны:inf == inf!(inf != inf)inf >= infinf <= inf!(inf > inf)!(inf < inf)Значение Inf больше любого конечного значения, а значение Inf меньше любого конечного значения.Однако, обратите внимание, что!(inf - inf == 0)Так как inf - inf дает в результате NaN.Чтобы проверить вещественное значение на принадлежность кклассу Inf можно использовать функции fpclassify илиisinf.#include <math.h>//...if (fpclassify(value) == FP_INFINITE) {// значение value является Inf (любого знака)}// или другой вариантif (isinf(value) < 0) {// значение value является -inf}if (isinf(value) > 0) {// значение value является +inf}Отрицательный 0Множество значений вещественных чисел содержит два нуля:положительный и отрицательный. Когда в результатенекоторых вычислений (например, при умножении илиделении) получается нулевой результат, его знак вычисляетсяпо обычным правилам и сохраняется. Поэтому в результатеможет получиться как обычное значение 0.0, так иотрицательное -0.0. Эти значения равны друг другу и,соответственно, больше всех отрицательных чисел и меньшевсех положительных чисел.Если при операции деления делитель равен нулю, то его знакучитывается при вычислении знака получающейсябесконечности. Таким образом, 1.0/-0.0 == -inf, -1.0/-0.0== inf.Last modified: Friday, 21Jun2013 16:47:24 MSK Alexander Chernov.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.