在八度音阶中,如何打印最多 d 位小数的数字,其中 d 是用户输入的值



我想打印一个变量,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);

最新更新