Ustawienie precyzji dziesiętnej w języku C

Ustawienie precyzji dziesiętnej w języku C

W tym artykule pokaże, jak ustawić precyzję dziesiętną w języku programowania C. Najpierw zdefiniujemy precyzję, a następnie przyjrzymy się wielu przykładom, aby pokazać, jak ustawić precyzję dziesiętną w programowaniu C.

Precyzja dziesiętna w C

Zmienna typu liczb całkowitych jest zwykle używana do przechowywania liczby całkowitej i zmiennej typu pływaka do przechowywania liczb rzeczywistych za pomocą części ułamkowych, na przykład 2.449561 lub -1.0587. Precyzja określa dokładność liczb rzeczywistych i jest oznaczona przez kropkę (.) symbol. Dokładność lub dokładność liczb rzeczywistych jest wskazywana przez liczbę cyfr po punkcie dziesiętnym. Tak więc precyzja oznacza liczbę cyfr wymienionych po punkcie dziesiętnym w liczbie pływakowej. Na przykład numer 2.449561 ma precyzję sześć i -1.058 ma precyzję trzy.

Zgodnie z reprezentacją zmiennoprzecinkową IEEE-754, istnieje w sumie 32 bity do przechowywania liczby rzeczywistych. Spośród 32 bitów najbardziej znaczący bit jest używany jako bit znaku, następujące 8 bitów jest używanych jako wykładnik, a następujące 23 bity są używane jako ułamek.

W przypadku podwójnej precyzyjnej reprezentacji IEEE-754 istnieje w sumie 64 bity do przechowywania liczby rzeczywistych. Spośród 64 bitów najbardziej znaczący bit jest używany jako bit znaku, następujące 11 bitów jest używanych jako wykładnik, a następujące 52 bity są używane jako frakcja.

Jednak podczas drukowania liczb rzeczywistych konieczne jest określenie precyzji (innymi słowy, dokładności) liczby rzeczywistej. Jeśli precyzja nie zostanie określona, ​​domyślna precyzja zostanie rozważona, ja.mi., sześć cyfr dziesiętnych po punkcie dziesiętnym. W poniższych przykładach pokażemy, jak określić precyzję podczas drukowania liczb zmiennoprzecinkowych w języku programowania C.

Przykłady

Teraz, gdy masz podstawowe zrozumienie precyzji, spójrzmy na kilka przykładów:

    1. Domyślna precyzja dla float
    2. Domyślna precyzja dla podwójnego
    3. Ustaw precyzję dla float
    4. Ustaw precyzję dla podwójnego

Przykład 1: Domyślna precyzja dla float

Ten przykład pokazuje, że domyślna precyzja jest ustawiona na sześć cyfr po punkcie dziesiętnym. Zainicjowaliśmy zmienną zmiennoprzecinkową z wartością 2.7 i wydrukowałem bez wyraźnego określenia precyzji.

W takim przypadku domyślne ustawienie precyzyjne zapewni, że sześć cyfr po wydrukowaniu punktu dziesiętnego.

#włączać
int main ()

float f = 2.7;
printf ("\ nValue of f = %f \ n", f);
printf („Rozmiar float = %ld \ n”, sizeof (float));
powrót 0;

Przykład 2: Domyślna precyzja dla podwójnego

W tym przykładzie zobaczysz, że domyślna precyzja jest ustawiona na sześć cyfr po punkcie dziesiętnym dla zmiennych typu podwójnego. Zainicjowaliśmy podwójną zmienną, i.mi., d, z wartością 2.7 i wydrukowałem bez określenia precyzji. W takim przypadku domyślne ustawienie precyzyjne zapewni, że sześć cyfr po wydrukowaniu punktu dziesiętnego.

#włączać
int main ()

Double D = 2.7;
printf ("\ nValue of D = %lf \ n", d);
printf („Rozmiar podwójnego = %ld \ n”, sizeof (podwójny));
powrót 0;

Przykład 3: Ustaw precyzję dla float

Teraz pokażemy, jak ustawić precyzję dla wartości pływakowych. Zainicjowaliśmy zmienną zmiennoprzecinkową, i.mi., f, z wartością 2.7 i wydrukowałem z różnymi precyzyjnymi ustawieniami. Kiedy wspominamy „%0.4f ”W instrukcji PrintF oznacza to, że jesteśmy zainteresowani drukowaniem czterech cyfr po przecinku dziesiętnym.

#włączać
int main ()

float f = 2.7;
/ * Ustaw precyzję dla zmiennej zmiennej */
printf ("\ nValue of f (precyzja = 0.1) = %0.1f \ n ", f);
printf ("\ nValue of f (precyzja = 0.2) = %0.2f \ n ", f);
printf ("\ nValue of f (precyzja = 0.3) = %0.3f \ n ”, f);
printf ("\ nValue of f (precyzja = 0.4) = %0.4f \ n ”, f);
printf ("\ nValue of f (precyzja = 0.22) = %0.22f \ n ", f);
printf ("\ nValue of f (precyzja = 0.23) = %0.23f \ n ", f);
printf ("\ nValue of f (precyzja = 0.24) = %0.24f \ n ”, f);
printf ("\ nValue of f (precyzja = 0.25) = %0.25f \ n ”, f);
printf ("\ nValue of f (precyzja = 0.40) = %0.40f \ n ”, f);
printf („Rozmiar float = %ld \ n”, sizeof (float));
powrót 0;

Przykład 4: Ustaw precyzję dla podwójnego

W tym przykładzie zobaczymy, jak ustawić precyzję dla podwójnych wartości. Zainicjowaliśmy podwójną zmienną, i.mi., d, z wartością 2.7 i wydrukowałem z różnymi precyzyjnymi ustawieniami. Kiedy wspominamy „%0.52f ”W instrukcji PrintF oznacza to, że jesteśmy zainteresowani drukowaniem 52 cyfr po przecinku.

#włączać
int main ()

float f = 2.7;
/ * Ustaw precyzję dla zmiennej zmiennej */
printf ("\ nValue of f (precyzja = 0.1) = %0.1f \ n ", f);
printf ("\ nValue of f (precyzja = 0.2) = %0.2f \ n ", f);
printf ("\ nValue of f (precyzja = 0.3) = %0.3f \ n ”, f);
printf ("\ nValue of f (precyzja = 0.4) = %0.4f \ n ”, f);
printf ("\ nValue of f (precyzja = 0.22) = %0.22f \ n ", f);
printf ("\ nValue of f (precyzja = 0.23) = %0.23f \ n ", f);
printf ("\ nValue of f (precyzja = 0.24) = %0.24f \ n ”, f);
printf ("\ nValue of f (precyzja = 0.25) = %0.25f \ n ”, f);
printf ("\ nValue of f (precyzja = 0.40) = %0.40f \ n ”, f);
printf („Rozmiar float = %ld \ n”, sizeof (float));
powrót 0;

Wniosek

Precyzja jest bardzo ważnym czynnikiem reprezentowania liczby rzeczywistych z odpowiednią dokładnością. Język programowania C zapewnia mechanizm kontrolowania dokładności lub dokładności liczby rzeczywistych. Nie możemy jednak zmienić faktycznej precyzji liczby rzeczywistej. Na przykład część frakcji 32-bitowej pojedynczej precyzyjnej liczby zmiennoprzecinkowej jest reprezentowana przez 23 bity i jest to ustalone; Nie możemy tego zmienić dla określonego systemu. Możemy zdecydować tylko, ile dokładności chcemy, ustawiając pożądaną precyzję rzeczywistej liczby. Jeśli potrzebujemy większej dokładności, zawsze możemy użyć 64-bitowej podwójnej precyzyjnej liczby zmiennoprzecinkowej.