我正在分数,说
x=2;
y=1/3;
z=x*y;
我希望z为0.66666666666667
,即小数点后的14个数字,y为相同的数字。现在,当我这样做时,我只得到0.6667
。如何将答案扩展到精确的14位精度?
答案 0 :(得分:7)
如果只是将数字拖延,您可以使用sprintf
函数
str = sprintf('%.14f', pi); % print PI with exactly 14 digits after decimal point
disp(str);
或fprintf
只有一行:
fprintf('%.14f', pi);
fprintf用于写入文件,但如果没有给出文件标识符,则将字符串结果打印到屏幕上。
答案 1 :(得分:6)
如果您确实希望数字具有该精度,那么请将其舍入到14个这样的位置:
format long g
x=2;
y=1/3;
z=x*y;
round(z*1e14)/1e14
ans = 0.66666666666667
如果只是显示,那么请使用Deve的sprintf
解决方案。
答案 2 :(得分:0)
你可以输入matlab:
digits(10)
它为您提供更多浮点精度,或者
digits(20)
例如:
a=1/3
ans = 0.3333
digits(10)
vpa(a)
ans= 0.3333333333
通过在命令窗口中输入doc搜索matlab的帮助,然后搜索:digits