>>503
コンピュータ内の少数の表現方法知れば分かるが
2進数では例えば0.1とか0.000001は正確には表せない、もっと言うと正確に表すには無限の桁が必要になる
なので0.1って書いてもコンピュータ内では正確に0.1ではなく、それを厳密に10進数に戻しても例えば0.1000000000001みたいになるだけ

なので原理的に有効桁を指定してどこかで桁を切らないと意味ある10進数表現は得られない

%fだけ指定するとデフォルトで少数点以下6桁までを有効桁にするのでそうなる
それ以上の精度が必要ならそれを自分で明示するだけ