1

我正在从另一个应用程序输出文件中的数据以供以后使用,并且数字以 1.654924e+03 的形式存储,而我希望文件包含 1654.924000 形式的数字

我将数据附加到文件中的源代码是

d='D:\Dropbox\data\gyro.txt';
fid=fopen(d,'at');
fprintf(fid,'%d',sumg(1));
fprintf(fid,'\n');
fprintf(fid,'%d',sumg(2));
fprintf(fid,'\n');

我正在使用 Matlab2013a

编辑**,因为我的问题似乎不够好。我希望正确打印数字(没有 e+03),并且在最后一个非零小数点后有 3 个零。数字也不是标准的。这只是一个例子。很抱歉我的原始问题造成了混乱

4

2 回答 2

2

您可以使用 %f 获得固定的十进制输出。要做到这一点,没有尾随小数点,请使用 %.0f。所以:

>> x = 1.654924e+03;
>> fprintf("%.0f\n", x);
1655

当然,这不是你想要的价值,但你给的价值和你想要的价值并不相等。但我们可以对此进行调整:

>> fprintf('%.0f\n',x*10^6);
1654924000
于 2013-11-10T17:59:00.167 回答
0

知道你的最后更新:你正在寻找这个:

fprintf("%.6f\n", x);

在这里描述

于 2013-11-10T18:50:01.923 回答