MSD*_*MSD 0 precision matlab floating
我说,我正在划分一个数字
x=2;
y=1/3;
z=x*y;
Run Code Online (Sandbox Code Playgroud)
我希望z为0.66666666666667小数点后的14个数字,y为相同的数字.现在,当我这样做时,我0.6667只得到.如何将答案扩展到精确的14位精度?
如果它只是在拖延数字,你可以使用该sprintf功能
str = sprintf('%.14f', pi); % print PI with exactly 14 digits after decimal point
disp(str);
Run Code Online (Sandbox Code Playgroud)
或fprintf只有一行:
fprintf('%.14f', pi);
Run Code Online (Sandbox Code Playgroud)
fprintf用于写入文件,但如果没有给出文件标识符,则将字符串结果打印到屏幕.
如果您确实希望数字具有该精度,那么将其舍入到14个位置,如下所示:
format long g
x=2;
y=1/3;
z=x*y;
round(z*1e14)/1e14
ans = 0.66666666666667
Run Code Online (Sandbox Code Playgroud)
如果它只是显示然后使用Deve的sprintf解决方案.