2016-04-27 5 views
-18
#include <stdio.h>    
#include <float.h>   

int main() {  
    printf("storage size of long double %d \n", sizeof(long double)); 
    printf("minimum long double positive value of %e \n", LDBL_MAX); 
    printf("maximum long double positive value of %e \n", LDBL_MIN); 
    printf("Precision value of %d", LDBL_DIG);   
    return 0;  
}  

の適切な値を取得すると、ここで私はlong doublefloatdoubleの正しい値を取得しますがいない午前出力Cプログラミングでは、長い二

Success time: 0 memory: 2160 signal:0  

storage size of long double 12  

maximum long double positive value of -nan  

minimum long double positive value of -0.000000e+00 

Precision value of 18 


float 4 byte 1.2E-38 to 3.4E+38 6 decimal places   
double 8 byte 2.3E-308 to 1.7E+308 15 decimal places   
long double 10 byte 3.4E-4932 to 1.1E+4932 19 decimal places   

だありません。私は何を間違えているのですか?

+4

なぜC#タグを使用していますか? – Schafwolle

+0

この質問にはどのタグを使用するのですか? –

+3

@PvVimalNair質問に合ったタグ。 C – Mafii

答えて

9

あなたはlong doubleを渡すことを示すためにLフラグ(%Le)を使用する必要があります。

printf("minimum long double positive value of %Le \n", LDBL_MAX); 
printf("maximum long double positive value of %Le \n", LDBL_MIN); 

そうでない場合は、元のコードはスタックからlong doubleの一部を取得し、明確に混乱になるdoubleとして解釈します。

+0

写真を投稿してください。 –

+0

私に完全なコードを送ってください。このコードを試してみてください。 –

+7

@PvVimalNair:どのような価値をお持ちですか、どのような価値がありますか?さあ、それは101のデバッグです。私は '1.189731e + 4932' /' 3.362103e-4932'を手に入れました。 – DevSolar

関連する問題