C Programování

Nastavení přesnosti desetinných míst v jazyce C

Nastavení přesnosti desetinných míst v jazyce C

Tento článek vám ukáže, jak nastavit desítkovou přesnost v programovacím jazyce C. Nejprve definujeme přesnost a poté se podíváme na několik příkladů, abychom ukázali, jak nastavit desítkovou přesnost v programování C.

Desetinná přesnost v C

Proměnná typu celé číslo se běžně používá k uložení celého čísla a proměnná typu float k uložení reálných čísel s zlomkovými částmi, například 2.449561 nebo -1.0587. Přesnost určuje přesnost reálných čísel a je označena tečkou (.). Přesnost nebo přesnost reálných čísel je indikována počtem číslic za desetinnou čárkou. Přesnost tedy znamená počet číslic zmíněných za desetinnou čárkou v desetinném čísle. Například číslo 2.449561 má přesnost šest a -1.058 má přesnost tři.

Podle vyjádření s plovoucí desetinnou čárkou s jednou přesností IEEE-754 existuje celkem 32 bitů pro uložení reálného čísla. Z 32 bitů je nejvýznamnější bit použit jako znakový bit, následujících 8 bitů je použito jako exponent a následujících 23 bitů je použito jako zlomek.

V případě reprezentace plovoucí desetinné čárky s dvojitou přesností IEEE-754 existuje celkem 64 bitů pro uložení reálného čísla. Z 64 bitů je nejvýznamnější bit použit jako znakový bit, následujících 11 bitů je použito jako exponent a následujících 52 bitů je použito jako zlomek.

Při tisku reálných čísel je však nutné určit přesnost (jinými slovy přesnost) reálného čísla. Pokud není zadána přesnost, bude brána v úvahu výchozí přesnost, tj.E., šest desetinných míst za desetinnou čárkou. V následujících příkladech vám ukážeme, jak určit přesnost při tisku čísel s plovoucí desetinnou čárkou v programovacím jazyce C.

Příklady

Nyní, když máte základní znalosti přesnosti, se podívejme na několik příkladů:

    1. Výchozí přesnost pro float
    2. Výchozí přesnost pro dvojnásobek
    3. Nastavte přesnost pro plovák
    4. Nastavte přesnost na dvojnásobek

Příklad 1: Výchozí přesnost pro Float

Tento příklad ukazuje, že výchozí přesnost je nastavena na šest číslic za desetinnou čárkou. Inicializovali jsme float proměnnou s hodnotou 2.7 a vytiskl jej bez výslovného určení přesnosti.

V takovém případě výchozí nastavení přesnosti zajistí vytištění šesti číslic za desetinnou čárkou.

#zahrnout
int main ()

float f = 2.7;
printf ("\ nHodnota f =% f \ n", f);
printf ("Velikost float =% ld \ n", sizeof (float));
návrat 0;

Příklad 2: Výchozí přesnost pro Double

V tomto příkladu uvidíte, že výchozí přesnost je nastavena na šest číslic za desetinnou čárkou pro proměnné typu double. Inicializovali jsme dvojitou proměnnou, tj.E., d, s hodnotou 2.7 a vytiskli jej bez zadání přesnosti. V takovém případě výchozí nastavení přesnosti zajistí vytištění šesti číslic za desetinnou čárkou.

#zahrnout
int main ()

dvojité d = 2.7;
printf ("\ nHodnota d =% lf \ n", d);
printf ("Velikost double =% ld \ n", sizeof (double));
návrat 0;

Příklad 3: Nastavit přesnost pro Float

Nyní vám ukážeme, jak nastavit přesnost pro plovoucí hodnoty. Inicializovali jsme float proměnnou, tj.E., f, s hodnotou 2.7 a vytiskli jej s různým nastavením přesnosti. Když zmíníme „% 0.4f ”v příkazu printf, to znamená, že máme zájem o tisk čtyř číslic za desetinnou čárkou.

#zahrnout
int main ()

float f = 2.7;
/ * nastavit přesnost pro proměnnou float * /
printf ("\ nHodnota f (přesnost = 0.1) =% 0.1f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.2) =% 0.2f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.3) =% 0.3f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.4) =% 0.4f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.22) =% 0.22f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.23) =% 0.23f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.24) =% 0.24f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.25) =% 0.25f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.40) =% 0.40f \ n ", f);
printf ("Velikost float =% ld \ n", sizeof (float));
návrat 0;

Příklad 4: Nastavte Precision pro Double

V tomto příkladu uvidíme, jak nastavit přesnost pro dvojité hodnoty. Inicializovali jsme dvojitou proměnnou, tj.E., d, s hodnotou 2.7 a vytiskl jej s různým nastavením přesnosti. Když zmíníme „% 0.52f “v příkazu printf, to znamená, že máme zájem o tisk 52 číslic za desetinnou čárkou.

#zahrnout
int main ()

float f = 2.7;
/ * nastavit přesnost pro proměnnou float * /
printf ("\ nHodnota f (přesnost = 0.1) =% 0.1f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.2) =% 0.2f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.3) =% 0.3f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.4) =% 0.4f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.22) =% 0.22f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.23) =% 0.23f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.24) =% 0.24f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.25) =% 0.25f \ n ", f);
printf ("\ nHodnota f (přesnost = 0.40) =% 0.40f \ n ", f);
printf ("Velikost float =% ld \ n", sizeof (float));
návrat 0;

Závěr

Přesnost je velmi důležitým faktorem pro reprezentaci reálného čísla s dostatečnou přesností. Programovací jazyk c poskytuje mechanismus pro řízení přesnosti nebo přesnosti reálného čísla. Skutečnou přesnost reálného čísla však nemůžeme změnit. Například zlomková část 32bitového čísla s plovoucí desetinnou čárkou s jednoduchou přesností je reprezentována 23 bity a je pevná; nemůžeme to změnit pro konkrétní systém. Můžeme se rozhodnout, kolik přesnosti chceme, nastavením požadované přesnosti reálného čísla. Pokud potřebujeme větší přesnost, můžeme vždy použít 64bitové číslo s plovoucí desetinnou čárkou s dvojitou přesností.

Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...
Hry 0 A.D. Tutorial
0 A.D. Tutorial
Z mnoha strategických her venku je 0 A.D. dokáže vyniknout jako komplexní titul a velmi hluboká, taktická hra, přestože je otevřeným zdrojem. Vývoj hr...
Hry Výukový program Unity3D
Výukový program Unity3D
Úvod do Unity 3D Unity 3D je výkonný engine pro vývoj her. Jedná se o multiplatformní platformu, která vám umožňuje vytvářet hry pro mobilní zařízení,...