如何计算有效位数?

时间:2018-04-02 02:33:48

标签: matlab

例如,5.020将返回4.优选地,它也应该与矢量输入一起使用。

我用Google搜索并找到了一些答案,但没有人计算5.020中的最后一个零点。

1 个答案:

答案 0 :(得分:0)

根据给定的信息,这是不可能的。

问题在于,当您输入一个数字时,它(按标准)表示为double,因此它的精度为eps(输入的精度会丢失)。但是,由于人们通常不想显示全部~15位数,因此Matlab使用了几个与最初输入的数字无关的不同显示规则,这通常涉及整数部分加上4位数。

此外,将数字转换为字符串(num2str)时的标准规则是截止尾随零。这就是为什么你没有得到最后的零。

您唯一的选择是在获取数据时计算有效位数。这导致回到@Beaker在评论中问你的问题