Verilen programda neden her printfs için farklı sonuçlar elde ettim ?
#include <stdio.h>
int main()
{
float c = 4.4e10;
printf("%f\n", c);
printf("%f\n", 4.4e10);
return 0;
}
Ve aşağıdaki çıktıyı gösterir:
44000002048.000000
44000000000.000000
doubleiçin floatC dilinde oluşur? Veya dönüşümden hangi değerlerin kaynaklandığını, yani dönüşümün ne gibi etkileri olduğunu bilmek ister misiniz? Veya başka bir şey?
Ckullandığımız printf("%f",x)bir için floatve printf("%lf",x)bir için double. İşler ne zaman değişti? Ve nasıl açıkça (tek) float- printf printf("%hf",x)?
%lfiçindeki adrian ile aynı şeydir %f. floatDeğişken bağımsız değişkenindeki A double, derleyici tarafından shorta'ya dönüştürülür , tıpkı bir int.
4.4e10birdoublesabit olduğunu açıklamaktadır . Bununla birlikte, bir sonek eklemenin onu sabit hale getirdiğini de bilmek isteyebilirsiniz : Yazdırma işlemi, başlangıçtan sonucuna kadar olan değeri gösterir . Ayırt gelen sabitleri sabitleri kayan noktalı aritmetik ile kaliteli işi için önemli olabilir.floatcdoubleprintfffloat4.4e10fc4.4e10ffloatdouble