【问题标题】:Matlab number with e带 e 的 Matlab 数
【发布时间】:2020-05-28 09:53:54
【问题描述】:

我使用 matlab。我的答案是这样的

1.0e-13 *

-0.4710
0.0133

我试过 format long g 但这次的答案是

-4.70969527418052e-14 

我不想要带有 e 的号码。如何解决这个问题?

【问题讨论】:

  • 你想显示什么? -0.0000000000000470969527418052?
  • 所以您希望输出为-0.000000000000047?还是你想要-4.70969x10^-14
  • 我要-0.0000000000000470969527418052
  • 这看起来真的是个好主意吗?无论如何,这些小数很可能并不精确。

标签: matlab numbers decimal rounding


【解决方案1】:

如果需要,您可以使用sprintf('%0.55f',your_var)。通过更改数字来更改要打印的小数位数。在本例中为 55。

我认为这是一个糟糕的主意。您正在绘制原始浮点表示,它让您感到困惑而不是帮助。如果您需要 e-20 数量级的小数精度,您可能做错了什么,或者只是没有使用正确的工具。

我认为在您继续之前,您应该阅读以下帖子:

Why is 24.0000 not equal to 24.0000 in MATLAB?

【讨论】:

  • 我不需要精确,我只想得到长版本的数字。
  • @Sun 如果您不关心十进制值(即您不需要准确性),那么您为什么要打印它们?由于这个疑问,我添加了免责声明。
【解决方案2】:

使用符号工具箱还有另一种可能性:

precision=64
vpa(sym(z,"f"),64)

输出是:

-0.00000000000004709999999999999620518877985217527098343349989395534294089884497

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多