Programowanie C

Ustawianie dokładności dziesiętnej w języku C

Ustawianie dokładności dziesiętnej w języku C

W tym artykule dowiesz się, jak ustawić dokładność 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.

Dokładność dziesiętna w C

Zmienna typu integer jest zwykle używana do przechowywania liczby całkowitej, a zmienna typu float do przechowywania liczb rzeczywistych z częściami ułamkowymi, na przykład 2.449561 lub -1.0587. Precyzja określa dokładność liczb rzeczywistych i jest oznaczona kropką (.) symbol. Dokładność lub dokładność liczb rzeczywistych jest wskazywana przez liczbę cyfr po przecinku. Tak więc precyzja oznacza liczbę cyfr wymienionych po przecinku w liczbie zmiennoprzecinkowej. Na przykład liczba 2.449561 ma precyzję sześć, a -1.058 ma precyzję trzy.

Zgodnie z reprezentacją zmiennoprzecinkową o pojedynczej precyzji IEEE-754, liczba rzeczywista jest przechowywana w sumie 32 bity. Spośród 32 bitów najbardziej znaczący bit jest używany jako bit znaku, kolejnych 8 bitów jest używanych jako wykładnik, a kolejne 23 bity są używane jako ułamek.

W przypadku reprezentacji zmiennoprzecinkowej o podwójnej precyzji IEEE-754 istnieje łącznie 64 bity do przechowywania liczby rzeczywistej. Spośród 64 bitów najbardziej znaczący bit jest używany jako bit znaku, kolejnych 11 bitów jest używanych jako wykładnik, a kolejne 52 bity są używane jako ułamek.

Jednak przy drukowaniu liczb rzeczywistych konieczne jest określenie precyzji (innymi słowy dokładności) liczby rzeczywistej. Jeśli precyzja nie zostanie określona, ​​zostanie uwzględniona precyzja domyślna, i.mi., sześć cyfr dziesiętnych po przecinku. 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 już podstawową wiedzę na temat precyzji, spójrzmy na kilka przykładów:

    1. Domyślna precyzja dla liczby zmiennoprzecinkowej
    2. Domyślna precyzja dla podwójnego
    3. Ustaw precyzję dla pływaka
    4. Ustaw precyzję dla podwójnej

Przykład 1: Domyślna precyzja dla Float

Ten przykład pokazuje, że domyślna precyzja jest ustawiona na sześć cyfr po przecinku. Zainicjowaliśmy zmienną float o wartości 2.7 i wydrukowałem go bez wyraźnego określenia precyzji!.

W takim przypadku domyślne ustawienie dokładności zapewni wydrukowanie sześciu cyfr po przecinku.

#zawierać
int main()

pływak f = 2.7;
printf("\nWartość f = %f \n", f);
printf("Rozmiar float = %ld \n", sizeof(float));
zwróć 0;

Przykład 2: Domyślna precyzja dla Double

W tym przykładzie zobaczysz, że domyślna precyzja jest ustawiona na sześć cyfr po przecinku dla zmiennych typu podwójnego. Zainicjowaliśmy zmienną podwójną, i.mi., d, o wartości 2.7 i wydrukowałem go bez określania precyzji!. W takim przypadku domyślne ustawienie dokładności zapewni wydrukowanie sześciu cyfr po przecinku.

#zawierać
int main()

podwójne d = 2.7;
printf("\nWartość d = %lf \n", d);
printf("Rozmiar double = %ld \n", sizeof(double));
zwróć 0;

Przykład 3: Ustaw precyzję dla Float

Teraz pokażemy, jak ustawić precyzję dla wartości zmiennoprzecinkowych. Zainicjowaliśmy zmienną zmiennoprzecinkową, i.mi., f, o wartości 2.7 i wydrukowałem go z różnymi ustawieniami precyzji!. Kiedy wspominamy „%0.4f” w instrukcji printf, oznacza to, że jesteśmy zainteresowani wydrukowaniem czterech cyfr po przecinku.

#zawierać
int main()

pływak f = 2.7;
/* ustaw precyzję zmiennej zmiennoprzecinkowej */
printf("\nWartość f (dokładność = 0.1) = %0.1f \n", f);
printf("\nWartość f (dokładność = 0.2) = %0.2f \n", f);
printf("\nWartość f (dokładność = 0.3) = %0.3f \n", f);
printf("\nWartość f (dokładność = 0.4) = %0.4f \n", f);
printf("\nWartość f (dokładność = 0.22) = %0.22f \n", f);
printf("\nWartość f (dokładność = 0.23) = %0.23f \n", f);
printf("\nWartość f (dokładność = 0.24) = %0.24f \n", f);
printf("\nWartość f (dokładność = 0.25) = %0.25f \n", f);
printf("\nWartość f (dokładność = 0.40) = %0.40f \n", f);
printf("Rozmiar float = %ld \n", sizeof(float));
zwróć 0;

Przykład 4: Ustaw precyzję dla Double

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

#zawierać
int main()

pływak f = 2.7;
/* ustaw precyzję zmiennej zmiennoprzecinkowej */
printf("\nWartość f (dokładność = 0.1) = %0.1f \n", f);
printf("\nWartość f (dokładność = 0.2) = %0.2f \n", f);
printf("\nWartość f (dokładność = 0.3) = %0.3f \n", f);
printf("\nWartość f (dokładność = 0.4) = %0.4f \n", f);
printf("\nWartość f (dokładność = 0.22) = %0.22f \n", f);
printf("\nWartość f (dokładność = 0.23) = %0.23f \n", f);
printf("\nWartość f (dokładność = 0.24) = %0.24f \n", f);
printf("\nWartość f (dokładność = 0.25) = %0.25f \n", f);
printf("\nWartość f (dokładność = 0.40) = %0.40f \n", f);
printf("Rozmiar float = %ld \n", sizeof(float));
zwróć 0;

Wniosek

Precyzja jest bardzo ważnym czynnikiem przy przedstawianiu liczby rzeczywistej z odpowiednią dokładnością. Język programowania c zapewnia mechanizm kontroli dokładności lub dokładności liczby rzeczywistej. Nie możemy jednak zmienić faktycznej precyzji liczby rzeczywistej. Na przykład część ułamkowa 32-bitowej liczby zmiennoprzecinkowej o pojedynczej precyzji jest reprezentowana przez 23 bity i jest to ustalone; nie możemy tego zmienić dla konkretnego systemu. Decydować możemy tylko, ile chcemy dokładności, ustawiając pożądaną dokładność liczby rzeczywistej. Jeśli potrzebujemy większej dokładności, zawsze możemy użyć 64-bitowej liczby zmiennoprzecinkowej podwójnej precyzji.

Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...
Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...
How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...