我想打印一个变量,val
最多 d
位小数,其中d
由用户输入。编写程序时,d
的值是未知的。
我尝试了以下方法:
printf ('%.df',val);
printf ('%.{%i}f',d,val);
不过,它似乎不起作用。
您可以使用特殊的格式说明符*
来指示格式参数。 例如:
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文档对此有很好的部分。
您需要先生成具有正确值的格式字符串;它不会在fprintf
内被替换:
d = 5;
val = 7.123456789
fmt_str = ['%.' num2str(d) 'f']; % fmt_str = '%.df', d replaced with number
fprintf(fmt_str, val);