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

Установка десятичной точности в языке C

Установка десятичной точности в языке C

Эта статья покажет вам, как установить десятичную точность в языке программирования C. Сначала мы определим точность, а затем рассмотрим несколько примеров, чтобы показать, как установить десятичную точность в программировании на C.

Десятичная точность в C

Переменная целочисленного типа обычно используется для хранения целого числа, а переменная типа с плавающей запятой - для хранения действительных чисел с дробными частями, например 2.449561 или -1.0587. Точность определяет точность действительных чисел и обозначается точкой (.) символ. Точность или точность действительных чисел указывается количеством цифр после десятичной точки. Итак, точность означает количество цифр, указанных после десятичной точки в числе с плавающей запятой. Например, цифра 2.449561 имеет точность шесть и -1.058 имеет точность три.

В соответствии с представлением с плавающей запятой одинарной точности IEEE-754, всего 32 бита для хранения действительного числа. Из 32 битов наиболее значимый бит используется как знаковый бит, следующие 8 бит используются как показатель степени, а следующие 23 бита используются как дробь.

В случае представления IEEE-754 с плавающей запятой двойной точности существует всего 64 бита для хранения действительного числа. Из 64 бит наиболее значимый бит используется как знаковый бит, следующие 11 бит используются как показатель степени, а следующие 52 бита используются как дробь.

Однако при печати действительных чисел необходимо указывать точность (другими словами, точность) действительного числа. Если точность не указана, будет учитываться точность по умолчанию, i.е., шесть десятичных цифр после десятичной точки. В следующих примерах мы покажем вам, как указать точность при печати чисел с плавающей запятой на языке программирования C.

Примеры

Теперь, когда у вас есть базовое представление о точности, давайте рассмотрим пару примеров:

    1. Точность по умолчанию для числа с плавающей запятой
    2. Точность по умолчанию для double
    3. Установить точность для поплавка
    4. Установить точность для двойного

Пример 1: точность по умолчанию для поплавка

В этом примере показано, что точность по умолчанию установлена ​​на шесть цифр после десятичной точки. Мы инициализировали переменную типа float значением 2.7 и распечатал его без явного указания точности.

В этом случае настройка точности по умолчанию гарантирует, что будут напечатаны шесть цифр после десятичной точки.

#включать
int main ()

поплавок f = 2.7;
printf ("\ nЗначение f =% f \ n", f);
printf ("Размер float =% ld \ n", sizeof (float));
возврат 0;

Пример 2: точность по умолчанию для Double

В этом примере вы увидите, что точность по умолчанию установлена ​​на шесть цифр после десятичной точки для переменных типа double. Мы инициализировали переменную типа double, i.е., d, со значением 2.7 и распечатал без указания точности. В этом случае настройка точности по умолчанию гарантирует, что будут напечатаны шесть цифр после десятичной точки.

#включать
int main ()

двойной d = 2.7;
printf ("\ nЗначение d =% lf \ n", d);
printf ("Размер double =% ld \ n", sizeof (double));
возврат 0;

Пример 3: установка точности для поплавка

Теперь мы покажем вам, как установить точность для значений с плавающей запятой. Мы инициализировали переменную типа float, i.е., f со значением 2.7, и распечатал его с различными настройками точности. Когда мы упоминаем «% 0.4f »в операторе printf, это означает, что мы заинтересованы в выводе четырех цифр после десятичной точки.

#включать
int main ()

поплавок f = 2.7;
/ * устанавливаем точность для переменной с плавающей запятой * /
printf ("\ nЗначение f (точность = 0.1) =% 0.1f \ n ", f);
printf ("\ nЗначение f (точность = 0.2) =% 0.2f \ n ", f);
printf ("\ nЗначение f (точность = 0.3) =% 0.3f \ n ", е);
printf ("\ nЗначение f (точность = 0.4) =% 0.4f \ n ", f);
printf ("\ nЗначение f (точность = 0.22) =% 0.22f \ n ", f);
printf ("\ nЗначение f (точность = 0.23) =% 0.23f \ n ", f);
printf ("\ nЗначение f (точность = 0.24) =% 0.24f \ n ", f);
printf ("\ nЗначение f (точность = 0.25) =% 0.25f \ n ", f);
printf ("\ nЗначение f (точность = 0.40) =% 0.40f \ n ", f);
printf ("Размер float =% ld \ n", sizeof (float));
возврат 0;

Пример 4: установка точности для двойного

В этом примере мы увидим, как установить точность для значений типа double. Мы инициализировали переменную типа double, i.е., d, со значением 2.7 и распечатал его с различными настройками точности. Когда мы упоминаем «% 0.52f »в операторе printf, это означает, что мы заинтересованы в выводе 52 цифр после десятичной точки.

#включать
int main ()

поплавок f = 2.7;
/ * устанавливаем точность для переменной с плавающей запятой * /
printf ("\ nЗначение f (точность = 0.1) =% 0.1f \ n ", f);
printf ("\ nЗначение f (точность = 0.2) =% 0.2f \ n ", f);
printf ("\ nЗначение f (точность = 0.3) =% 0.3f \ n ", е);
printf ("\ nЗначение f (точность = 0.4) =% 0.4f \ n ", f);
printf ("\ nЗначение f (точность = 0.22) =% 0.22f \ n ", f);
printf ("\ nЗначение f (точность = 0.23) =% 0.23f \ n ", f);
printf ("\ nЗначение f (точность = 0.24) =% 0.24f \ n ", f);
printf ("\ nЗначение f (точность = 0.25) =% 0.25f \ n ", f);
printf ("\ nЗначение f (точность = 0.40) =% 0.40f \ n ", f);
printf ("Размер float =% ld \ n", sizeof (float));
возврат 0;

Заключение

Точность - очень важный фактор для представления действительного числа с достаточной точностью. Язык программирования c предоставляет механизм для контроля точности или точности действительного числа. Однако мы не можем изменить фактическую точность действительного числа. Например, дробная часть 32-битного числа с плавающей запятой одинарной точности представлена ​​23 битами, и это фиксировано; мы не можем изменить это для конкретной системы. Мы можем только решить, какую точность мы хотим, установив желаемую точность действительного числа. Если нам нужна большая точность, мы всегда можем использовать 64-битное число с плавающей запятой двойной точности.

Как показать наложение OSD в полноэкранных приложениях и играх Linux
Игра в полноэкранные игры или использование приложений в полноэкранном режиме без отвлекающих факторов может отрезать вас от соответствующей системной...
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...
Как разработать игру в Linux
Десять лет назад не многие пользователи Linux могли бы предсказать, что их любимая операционная система однажды станет популярной игровой платформой д...