在matlab中控制浮点数的精度

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位精度?

Dev*_*eve 7

如果它只是在拖延数字,你可以使用该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用于写入文件,但如果没有给出文件标识符,则将字符串结果打印到屏幕.


Dan*_*Dan 6

如果您确实希望数字具有该精度,那么将其舍入到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解决方案.