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