電卓プログラムを作成しているのですが、計算結果の小数点以下の桁数を実際の小数点以下の桁数で表示するように設定する方法がわかりません。例: -答えが 6 の場合、6.0000000 ではなく 6 と表示されます。
-答えが 8.23 の場合、8.23000000 ではなく 8.23 と表示されます。
等
精度をそのように設定するにはどうすればよいですか?
電卓プログラムを作成しているのですが、計算結果の小数点以下の桁数を実際の小数点以下の桁数で表示するように設定する方法がわかりません。例: -答えが 6 の場合、6.0000000 ではなく 6 と表示されます。
-答えが 8.23 の場合、8.23000000 ではなく 8.23 と表示されます。
等
精度をそのように設定するにはどうすればよいですか?
これはうまくいきます:
printf("%g",value);
「実際の小数点以下の桁数」はありません。倍精度には多数の2 進数の桁数がありますが、これらは小数点以下の桁数に確実にマップされません。簡単な例として、1.0/10,0
これは 0.1 である必要がありますが、実際には 0.1 に非常に近い数値です。したがって、これらのような合計に対して表示する小数点以下の桁数は、倍精度自体の品質ではなく、表示したい小数点以下の桁数です。
必要な数に切り捨てる方法については、他の回答で説明されています。