val
まで小数点以下はval
までd
、ここでd
が入力されています。プログラムの作成中にd
の値はわかりません。オクターブで、小数点以下の桁数を出力する方法dはユーザが入力する値です
私は次のことを試してみました:
printf ('%.df',val);
printf ('%.{%i}f',d,val);
が動作するようには思えdoen't。
val
まで小数点以下はval
までd
、ここでd
が入力されています。プログラムの作成中にd
の値はわかりません。オクターブで、小数点以下の桁数を出力する方法dはユーザが入力する値です
私は次のことを試してみました:
printf ('%.df',val);
printf ('%.{%i}f',d,val);
が動作するようには思えdoen't。
適切な値でフォーマット文字列を生成する必要があります。それはfprintf
以内に交換されることはありません。
d = 5;
val = 7.123456789
fmt_str = ['%.' num2str(d) 'f']; % fmt_str = '%.df', d replaced with number
fprintf(fmt_str, val);
あなたは書式設定引数を示すために、特別なformatspecifier *
を使用することができます。例:
octave:1> val = exp(1)
val = 2.7183
octave:2> decimalPlaces = 3;
octave:3> fprintf('The value to 3 sig digits is: %.*f \n', decimalPlaces, val)
The value to 3 sig digits is: 2.718
matlab documentationにはこのセクションがあります。
クールな豆、私はそれが好きです。 :) – beaker
実際には、書式指定子自身のための変数を含めるための特別な構文があります。 (私の答えを参照してください) –