我想打印一个变量val
,最多d
个小数位,其中d
由用户输入。编写程序时不知道d
的值。
我尝试了以下内容:
printf ('%.df',val);
printf ('%.{%i}f',d,val);
但它似乎无法奏效。
答案 0 :(得分:2)
您可以使用特殊格式规范*
来指示格式参数。 E.g:
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有一个很好的部分。
答案 1 :(得分:1)
您需要先生成具有正确值的格式字符串;它不会在fprintf
:
d = 5;
val = 7.123456789
fmt_str = ['%.' num2str(d) 'f']; % fmt_str = '%.df', d replaced with number
fprintf(fmt_str, val);