Bu makale, C programlama dilinde ondalık kesinliğin nasıl ayarlanacağını gösterecektir. İlk önce kesinliği tanımlayacağız ve ardından C programlamada ondalık kesinliğin nasıl ayarlanacağını göstermek için birden çok örneğe bakacağız.
C'de Ondalık Hassasiyet
Tamsayı tipi değişken normalde tam sayıyı tutmak için kullanılır ve kayan tip değişkeni kesirli kısımlarla gerçek sayıları tutmak için kullanılır, örneğin, 2.449561 veya -1.0587. Kesinlik, gerçek sayıların doğruluğunu belirler ve nokta ile gösterilir (.) sembolü. Gerçek sayıların Kesinliği veya Doğruluğu, ondalık noktadan sonraki basamak sayısıyla gösterilir. Bu nedenle, kesinlik, kayan nokta sayısında ondalık noktadan sonra belirtilen basamak sayısı anlamına gelir. Örneğin, 2 sayısı.449561 hassas altı ve -1'e sahiptir.058 hassas üç.
IEEE-754 tek duyarlıklı kayan nokta gösterimine göre, gerçek sayıyı saklamak için toplam 32 bit vardır. 32 bitten en anlamlısı işaret biti olarak, sonraki 8 bit üs olarak ve sonraki 23 bit kesir olarak kullanılır.
IEEE-754 çift duyarlıklı kayan nokta gösterimi durumunda, gerçek sayıyı saklamak için toplam 64 bit vardır. 64 bitin en önemli biti işaret biti olarak, sonraki 11 bit üs olarak ve takip eden 52 bit kesir olarak kullanılır.
Ancak gerçek sayıları yazdırırken, gerçek sayının kesinliğini (diğer bir deyişle doğruluğunu) belirtmek gerekir. Kesinlik belirtilmemişse, varsayılan kesinlik dikkate alınacaktır, i.e., ondalık noktadan sonra altı ondalık basamak. Aşağıdaki örneklerde, C programlama dilinde kayan noktalı sayıları yazdırırken kesinliğin nasıl belirleneceğini göstereceğiz.
Örnekler
Artık temel bir kesinlik anlayışına sahip olduğunuza göre, birkaç örneğe bakalım:
-
- Float için varsayılan hassasiyet
- Çift için varsayılan hassasiyet
- Float için hassasiyeti ayarla
- Çift için hassasiyeti ayarla
Örnek 1: Float için Varsayılan Hassasiyet
Bu örnek, varsayılan duyarlılığın ondalık noktadan sonra altı haneye ayarlandığını gösterir. 2 değerinde bir kayan değişken başlattık.7 ve kesinliği açıkça belirtmeden yazdırdı.
Bu durumda, varsayılan kesinlik ayarı, ondalık noktadan sonraki altı hanenin yazdırılmasını sağlayacaktır.
#Dahil etmekint ana()
kayan nokta f = 2.7;
printf("\nf değeri = %f \n", f);
printf("şamandıranın boyutu = %ld \n", sizeof(kayan nokta));
0 döndür;
Örnek 2: Çift için Varsayılan Hassasiyet
Bu örnekte, çift tip değişkenler için varsayılan kesinliğin ondalık noktadan sonra altı haneye ayarlandığını göreceksiniz. Bir çift değişken başlattık, i.e., d, 2 değeri ile.7 ve hassasiyeti belirtmeden yazdırdı. Bu durumda, varsayılan kesinlik ayarı, ondalık noktadan sonraki altı hanenin yazdırılmasını sağlayacaktır.
#Dahil etmekint ana()
çift d = 2.7;
printf("\nD değeri = %lf \n", d);
printf("çiftin boyutu = %ld \n", sizeof(double));
0 döndür;
Örnek 3: Float için Kesinliği Ayarlayın
Şimdi size kayan değerler için kesinliğin nasıl ayarlanacağını göstereceğiz. Float değişkeni başlattık, i.e., f, 2 değeri ile.7 ve çeşitli hassas ayarlarla yazdırıldı. “%0” dediğimizde.printf ifadesinde 4f”, bu, ondalık noktadan sonra dört hane yazdırmakla ilgilendiğimizi gösterir.
#Dahil etmekint ana()
kayan nokta f = 2.7;
/* kayan değişken için kesinliği ayarla */
printf("\nf değeri (hassasiyet = 0.1) = %0.1f \n", f);
printf("\nf değeri (hassasiyet = 0.2) = %0.2f \n", f);
printf("\nf değeri (hassasiyet = 0.3) = %0.3f \n", f);
printf("\nf değeri (hassasiyet = 0.4) = %0.4f \n", f);
printf("\nf değeri (hassasiyet = 0.22) = %0.22f \n", f);
printf("\nf değeri (hassasiyet = 0.23) = %0.23f \n", f);
printf("\nf değeri (hassasiyet = 0.24) = %0.24f \n", f);
printf("\nf değeri (hassasiyet = 0.25) = %0.25f \n", f);
printf("\nf değeri (hassasiyet = 0.40) = %0.40f \n", f);
printf("şamandıranın boyutu = %ld \n", sizeof(kayan nokta));
0 döndür;
Örnek 4: Çift için Kesinlik Ayarı
Bu örnekte, çift değerler için kesinliğin nasıl ayarlanacağını göreceğiz. Bir çift değişken başlattık, i.e., d, 2 değeri ile.7 ve çeşitli hassas ayarlarla yazdırıldı. “%0” dediğimizde.52f ”, printf ifadesinde bu, ondalık noktadan sonra 52 hane yazdırmakla ilgilendiğimizi gösterir.
#Dahil etmekint ana()
kayan nokta f = 2.7;
/* kayan değişken için kesinliği ayarla */
printf("\nf değeri (hassasiyet = 0.1) = %0.1f \n", f);
printf("\nf değeri (hassasiyet = 0.2) = %0.2f \n", f);
printf("\nf değeri (hassasiyet = 0.3) = %0.3f \n", f);
printf("\nf değeri (hassasiyet = 0.4) = %0.4f \n", f);
printf("\nf değeri (hassasiyet = 0.22) = %0.22f \n", f);
printf("\nf değeri (hassasiyet = 0.23) = %0.23f \n", f);
printf("\nf değeri (hassasiyet = 0.24) = %0.24f \n", f);
printf("\nf değeri (hassasiyet = 0.25) = %0.25f \n", f);
printf("\nf değeri (hassasiyet = 0.40) = %0.40f \n", f);
printf("şamandıranın boyutu = %ld \n", sizeof(kayan nokta));
0 döndür;
Sonuç
Kesinlik, gerçek bir sayıyı yeterli doğrulukla temsil etmek için çok önemli bir faktördür. c programlama dili, gerçek bir sayının doğruluğunu veya kesinliğini kontrol etmek için mekanizma sağlar. Ancak, gerçek sayının gerçek kesinliğini değiştiremeyiz. Örneğin, 32 bitlik tek duyarlıklı kayan noktalı sayının kesir kısmı 23 bit ile temsil edilir ve bu sabittir; bunu belirli bir sistem için değiştiremeyiz. Sadece gerçek sayının istenen hassasiyetini ayarlayarak ne kadar doğruluk istediğimize karar verebiliriz. Daha fazla doğruluğa ihtiyacımız olursa, her zaman 64-bit çift kesinlikli kayan noktalı sayıyı kullanabiliriz.