2016-10-31 8 views
2

浮動小数点数で表示する小数点の桁数をユーザーが選択できるようにするにはどうすればよいですか?例えば浮動小数点数で印刷する小数点以下の桁数を決める方法を教えてください。

、次のコード

#include <stdio.h> 
int main(){ 
    float x; 
    x = 0.67183377; 
    printf("%.2f\n", x); 
} 

は私たちに、ユーザは、または小数点以下4桁まで、例えば完全な数を確認したい場合はどう.But 0.67の出力を与えるだろう。彼らはどのようにこれを行うだろうか?

+4

参照[ 'のprintf()'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html): 'のprintf ( "%。* f \ n"、n、x); 'nは、印刷される小数点以下桁数を含む' int'です。 'float'は実際には約6-7桁の数字しか保持できないことに注意してください。この例の8番目と9番目のものはほとんど無関係です。 –

答えて

7

詳細はprintf()を参照してください。用途:nは、小数点以下の桁数が印刷さ含まれていintある

printf("%.*f\n", n, x); 

floatは実際には約6-7桁の数字しか保持できないことに注意してください。この例の8番目のものはほとんど無関係です。

#include <stdio.h> 

int main(void) 
{ 
    float x = 0.67183377; 
    for (int n = 0; n < 10; n++) 
     printf("%.*f\n", n, x); 
    return(0); 
} 

出力例:そのすべての可変引数の関数で発生するので、それがprintf()に渡される前に

1 
0.7 
0.67 
0.672 
0.6718 
0.67183 
0.671834 
0.6718338 
0.67183375 
0.671833754 

値はdoubleに変換されます。 xdoubleに変更されると、出力は次のとおり

1 
0.7 
0.67 
0.672 
0.6718 
0.67183 
0.671834 
0.6718338 
0.67183377 
0.671833770 
関連する問題