Pengaturcaraan C

Menetapkan Ketepatan Perpuluhan dalam Bahasa C

Menetapkan Ketepatan Perpuluhan dalam Bahasa C

Artikel ini akan menunjukkan kepada anda cara menetapkan ketepatan perpuluhan dalam bahasa pengaturcaraan C. Pertama, kita akan menentukan ketepatan, dan kemudian, kita akan melihat beberapa contoh untuk menunjukkan bagaimana menetapkan ketepatan perpuluhan dalam pengaturcaraan C.

Ketepatan Perpuluhan dalam C

Pemboleh ubah jenis integer biasanya digunakan untuk menahan nombor bulat dan pemboleh ubah jenis terapung untuk memegang nombor nyata dengan bahagian pecahan, misalnya, 2.449561 atau -1.0587. Ketepatan menentukan ketepatan nombor nyata dan dilambangkan dengan titik (.) simbol. Ketepatan atau Ketepatan nombor nyata ditunjukkan oleh bilangan digit selepas titik perpuluhan. Jadi, ketepatan bermaksud bilangan digit yang disebutkan selepas titik perpuluhan dalam nombor apungan. Contohnya, nombor 2.449561 mempunyai ketepatan enam, dan -1.058 mempunyai ketepatan tiga.

Berdasarkan perwakilan titik terapung ketepatan tunggal IEEE-754, terdapat 32 bit untuk menyimpan nombor sebenar. Dari 32 bit, bit yang paling ketara digunakan sebagai bit tanda, 8 bit berikut digunakan sebagai eksponen, dan 23 bit berikut digunakan sebagai pecahan.

Sekiranya perwakilan titik terapung berketepatan ganda IEEE-754, terdapat sejumlah 64 bit untuk menyimpan nombor sebenar. Daripada 64 bit, bit yang paling signifikan digunakan sebagai bit tanda, 11 bit berikut digunakan sebagai eksponen, dan 52 bit berikut digunakan sebagai pecahan.

Walau bagaimanapun, semasa mencetak nombor sebenar, perlu menentukan ketepatan (dengan kata lain, ketepatan) nombor sebenarnya. Sekiranya ketepatan tidak ditentukan, ketepatan lalai akan dipertimbangkan, i.e., enam digit perpuluhan selepas titik perpuluhan. Dalam contoh berikut, kami akan menunjukkan kepada anda cara menentukan ketepatan semasa mencetak nombor floating-point dalam bahasa pengaturcaraan C.

Contoh

Setelah anda memahami asas ketepatan, mari kita lihat beberapa contoh:

    1. Ketepatan lalai untuk apungan
    2. Ketepatan lalai untuk dua kali ganda
    3. Tetapkan ketepatan untuk apungan
    4. Tetapkan ketepatan untuk berganda

Contoh 1: Ketepatan Lalai untuk Float

Contoh ini menunjukkan bahawa ketepatan lalai ditetapkan menjadi enam digit selepas titik perpuluhan. Kami telah memulakan pemboleh ubah float dengan nilai 2.7 dan mencetaknya tanpa menyatakan ketepatan secara jelas.

Dalam kes ini, tetapan ketepatan lalai akan memastikan bahawa enam digit selepas titik perpuluhan dicetak.

#sertakan
int utama ()

apungan f = 2.7;
printf ("\ nNilai f =% f \ n", f);
printf ("Ukuran apungan =% ld \ n", sizeof (apungan));
pulangan 0;

Contoh 2: Ketepatan Lalai untuk Double

Dalam contoh ini, anda akan melihat bahawa ketepatan lalai ditetapkan menjadi enam digit selepas titik perpuluhan untuk pemboleh ubah jenis berganda. Kami telah memulakan pemboleh ubah berganda, i.e., d, dengan nilai 2.7 dan mencetaknya tanpa menyatakan ketepatan. Dalam kes ini, tetapan ketepatan lalai akan memastikan bahawa enam digit selepas titik perpuluhan dicetak.

#sertakan
int utama ()

berganda d = 2.7;
printf ("\ nNilai d =% lf \ n", d);
printf ("Saiz ganda =% ld \ n", sizeof (dua kali ganda));
pulangan 0;

Contoh 3: Tetapkan Ketepatan untuk Terapung

Sekarang, kami akan menunjukkan kepada anda cara menetapkan ketepatan untuk nilai apungan. Kami telah memulakan pemboleh ubah float, i.e., f, dengan nilai 2.7, dan mencetaknya dengan pelbagai tetapan ketepatan. Apabila kita menyebut “% 0.4f ”dalam pernyataan printf, ini menunjukkan bahawa kami berminat mencetak empat digit selepas titik perpuluhan.

#sertakan
int utama ()

apungan f = 2.7;
/ * tetapkan ketepatan untuk pemboleh ubah apungan * /
printf ("\ n Nilai f (ketepatan = 0.1) =% 0.1f \ n ", f);
printf ("\ nNilai f (ketepatan = 0.2) =% 0.2f \ n ", f);
printf ("\ nNilai f (ketepatan = 0.3) =% 0.3f \ n ", f);
printf ("\ n Nilai f (ketepatan = 0.4) =% 0.4f \ n ", f);
printf ("\ n Nilai f (ketepatan = 0.22) =% 0.22f \ n ", f);
printf ("\ nNilai f (ketepatan = 0.23) =% 0.23f \ n ", f);
printf ("\ n Nilai f (ketepatan = 0.24) =% 0.24f \ n ", f);
printf ("\ n Nilai f (ketepatan = 0.25) =% 0.25f \ n ", f);
printf ("\ nNilai f (ketepatan = 0.40) =% 0.40f \ n ", f);
printf ("Ukuran apungan =% ld \ n", sizeof (apungan));
pulangan 0;

Contoh 4: Tetapkan Ketepatan untuk Berganda

Dalam contoh ini, kita akan melihat bagaimana menetapkan ketepatan untuk nilai berganda. Kami telah memulakan pemboleh ubah berganda, i.e., d, dengan nilai 2.7 dan mencetaknya dengan pelbagai tetapan ketepatan. Apabila kita menyebut “% 0.52f ”dalam pernyataan printf, ini menunjukkan bahawa kami berminat mencetak 52 digit selepas titik perpuluhan.

#sertakan
int utama ()

apungan f = 2.7;
/ * tetapkan ketepatan untuk pemboleh ubah apungan * /
printf ("\ nNilai f (ketepatan = 0.1) =% 0.1f \ n ", f);
printf ("\ n Nilai f (ketepatan = 0.2) =% 0.2f \ n ", f);
printf ("\ n Nilai f (ketepatan = 0.3) =% 0.3f \ n ", f);
printf ("\ n Nilai f (ketepatan = 0.4) =% 0.4f \ n ", f);
printf ("\ nNilai f (ketepatan = 0.22) =% 0.22f \ n ", f);
printf ("\ nNilai f (ketepatan = 0.23) =% 0.23f \ n ", f);
printf ("\ n Nilai f (ketepatan = 0.24) =% 0.24f \ n ", f);
printf ("\ nNilai f (ketepatan = 0.25) =% 0.25f \ n ", f);
printf ("\ n Nilai f (ketepatan = 0.40) =% 0.40f \ n ", f);
printf ("Ukuran apungan =% ld \ n", sizeof (apungan));
pulangan 0;

Kesimpulannya

Ketepatan adalah faktor yang sangat penting untuk mewakili nombor nyata dengan ketepatan yang mencukupi. Bahasa pengaturcaraan c menyediakan mekanisme untuk mengawal ketepatan atau ketepatan nombor nyata. Namun, kami tidak dapat mengubah ketepatan sebenar nombor nyata. Sebagai contoh, bahagian pecahan nombor titik terapung ketepatan tunggal 32-bit diwakili oleh 23 bit, dan ini tetap; kita tidak boleh mengubahnya untuk sistem tertentu. Kami hanya dapat menentukan berapa banyak ketepatan yang kami mahukan dengan menetapkan ketepatan nombor sebenar yang diinginkan. Sekiranya kita memerlukan lebih banyak ketepatan, kita selalu boleh menggunakan nombor titik terapung berketepatan 64 bit.

SuperTuxKart untuk Linux
SuperTuxKart adalah tajuk hebat yang direka untuk membawa anda pengalaman Mario Kart secara percuma pada sistem Linux anda. Ia cukup mencabar dan meny...
Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...
0 A.D. Tutorial
Daripada banyak permainan strategi di luar sana, 0 A.D. berjaya menonjol sebagai tajuk yang komprehensif dan permainan taktikal yang sangat mendalam w...