0

我正在划分一个数字,比如说

x=2;
y=1/3;
z=x*y;

我希望z 是0.66666666666667小数点后的14 个数字,y 也是一样的。现在,当我这样做时,我0.6667只会得到。如何将答案扩展到精确的 14 位精度?

4

3 回答 3

7

如果只是显示数字,您可以使用该sprintf功能

str = sprintf('%.14f', pi); % print PI with exactly 14 digits after decimal point
disp(str);

或者fprintf只有一行:

fprintf('%.14f', pi);

fprintf用于写入文件,但如果没有给出文件标识符,则将字符串结果打印到屏幕上。

于 2013-08-20T09:15:02.970 回答
6

如果您确实希望数字具有该精度,则四舍五入到 14 位,如下所示:

format long g

x=2;
y=1/3;
z=x*y;
round(z*1e14)/1e14

ans =      0.66666666666667

如果只是显示,请使用 Deve 的sprintf解决方案。

于 2013-08-20T09:17:47.480 回答
1

你可以在 matlab 中输入:

digits(10)

它为您提供更高的浮点精度,或者

digits(20)

例如:

 a=1/3
ans = 0.3333
digits(10)
 vpa(a)
 ans= 0.3333333333

通过在命令窗口中键入 doc 来搜索 matlab 的帮助,然后搜索:数字

于 2015-02-17T02:03:05.727 回答