花井@京都です. ちょっと詳しい方教えて下さい. x86 の Vine-2.5 で #include <stdio.h> int main(void) { long double x, y; x = 3.14159; y = x * x * x * x * x; printf("x^5 = %14.5E\n", y); return 0; } なプログラムを作って, gcc でコンパイルし,実行すると, $ ./long_dbl_test x^5 = -3.29556E-188 となってしまいます. 一方,printf("x^5 = %14.5E\n", y); を printf("x^5 = %14.5E\n", (double) y); としておくと, $ ./long_dbl_test x^5 = 3.06018E+02 と正しい答を表示します.printf は long double では 使えないのでしょうか? $ rpm -q gcc gcc-2.95.3-2vl22 です.ppc や alpha ではこんなことにならないようです. (long double のままでも正しい答を表示します)