コード
float x = 3.141592653589793238;
double z = 3.141592653589793238;
printf("x=%f\n", x);
printf("z=%f\n", z);
printf("x=%20.18f\n", x);
printf("z=%20.18f\n", z);
あなたに出力を与えます
x=3.141593
z=3.141593
x=3.141592741012573242
z=3.141592653589793116
出力の3行目741012573242
はガベージで、4行目116
はガベージです。倍精度浮動小数点数は常に16の有効数字を持っていますが、浮動小数点数は常に7の有効数字を持っていますか?ダブルスに14の有効数字がないのはなぜですか?