在Matlab中,使用e
fprintf('%10.5e\n', pi/100)
进行打印时,结果为3.14159e-02
。但是,如果我希望数字具有前导零,例如0.314159e-1
,该怎么办?如何使用Matlab进行管理?
我问的原因是我正在尝试打印到我需要有前导零的文件。否则,我不在乎。
感谢。
答案 0 :(得分:3)
我认为没有任何聪明的方法可以做到:
your_number = pi;
['0.' strrep(sprintf('%10.5e',your_number*10), '.', '')]
>> ans =
0.314159e+01
答案 1 :(得分:1)
我的解决方案很粗糙,但这只是为了说明。您可以使用一个小函数自行完成,该函数将查找数字中的相关字符串,在e
之后修剪它,在开头添加0.
并在1
处增加function b=fooo(a)
b=a;
k1 = strfind(a, '.');
k2 = strfind(a, 'e-');
suffix=num2str(str2num(b(k2+1:k2+3))+1);
b(k2+1:end)=[];
b(k1)=[];
b=['0.' b suffix];
结束,例如:
ans=fooo(sprintf('%10.5e\n', pi/100))
输入如
ans =
0.314159e-1
将得出答案:
{{1}}