首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Output_precision();八度

Output_precision();八度
EN

Stack Overflow用户
提问于 2018-04-22 16:13:08
回答 1查看 6.1K关注 0票数 2

嗨,在调用这个代码(八度)后,我得到了一个7位精度的答案,我只需要6位。值得一提的是,在不同的数据集上,输出是正常的(6位);

代码语言:javascript
复制
output_precision(6);
Prev

产出:

代码语言:javascript
复制
Prev =
   0.1855318
   0.2181108
   0.1796457
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-08 05:58:09

我知道这有点晚了,但我想为将来有同样问题的人补充一个答案。

根据功能参考 for output_precision(),传递给函数的参数(在本例中为6)指定了重要数字的最小数量,这只能保证未来的数字输出不会少于该重要数字数。

据我所见,如果在显示数组之前使用output_precision(new_val) (例如,问题中的Prev ),那么八度将在小数位之前用最少的数字舍入元素,使其具有new_val显着数字,然后所有其他元素都会四舍五入,在十进制后的数字数与最初的四舍五入结果相同。如果使用语句输出单个值而不是数组,则输出将被舍入为new_val显着数字。但是,--我不知道这种行为是否得到的保证。

这里有一个简短的例子来说明我的意思:

代码语言:javascript
复制
% array defined with values having 5 digits after decimal
F = [401.51670 313.70753 -88.55225 188.50067 280.21988 354.51821 54.51821 350];
output_precision(4)
F
output_precision(6)
F

输出:

代码语言:javascript
复制
F =
   401.52  313.71  -88.55  188.50  280.22  354.52  54.52  350.00

F =
   401.5167  313.7075  -88.5523  188.5007  280.2199  354.5182  54.5182  350.0000

如果你试图过多地舍入这些值,这可能会有点古怪。当我使用output_precision(3)然后输出F时,数字实际上是四舍五入的,就好像我的系统的默认精度5仍然是活动的一样。但是,当我使用十进制后只有2或3位数的元素来定义另一个数组时,它将按预期的方式在output_precision(3)中显示。

如果您需要用于八度功能的文档。这并不完美,但却很有意义。希望这能帮上忙。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49968068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档