为啥我的输出值为指数格式 1.04e+05? [复制]

Posted

技术标签:

【中文标题】为啥我的输出值为指数格式 1.04e+05? [复制]【英文标题】:Why is my output value in exponential format 1.04e+05? [duplicate]为什么我的输出值为指数格式 1.04e+05? [复制] 【发布时间】:2018-03-09 09:23:00 【问题描述】:

我正在使用bwarea 计算图像中对象的面积,如下所示:

i=imread('Z:\Azhagu project work\MRI\input.jpg');
imshow(i);    
bwarea(i)

这给出了以下输出:

ans = 1.0428e+05

为什么面积是指数格式?

【问题讨论】:

您是要显示答案还是要对其进行更多计算?如果你想做更多的计算,最好保持这种格式。 @TomDee 没有“那种格式”。你不能改变它。您只能更改其显示方式,但不会更改数字 ***.com/questions/49191571/… 当@Adriaan 的规范版本subsequently asked 正在累积赞成票时,不确定为什么这个问题会累积反对票?是的,它的格式很差,但本质上主要的区别是 OP 不知道他们在问什么,这就是他们问的原因。阿扎古:请阅读How to Ask,这样你以后可以写出更多描述性的问题。 @Wolfie 可能是因为这是一个很基础的错误,说明MATLAB的基本原理还没有搞清楚,从而得出这个问题“没有好好研究”的结论,就是这样否决箭头上的工具提示说。我想我的问题被赞成了,因为我写了一个规范的 Q/A,而认为答案很好的人可能也放弃了对该问题的投票。 (我决定写一个单独的问题,因为图像关系与这里的一般原因无关) 【参考方案1】:

它不是指数输出;它是科学计数法。

ans = 1.0428e+05 == 104280

您可以使用 format longformat longG 强制 MATLAB 显示所有小数。这只是 MATLAB 的一个显示怪癖,无论如何,您的号码在内部都存储为 double,因此对于进一步的计算,这无关紧要。

【讨论】:

【参考方案2】:

此面积值不是指数格式。对于您给定的图像,面积以浮点数格式表示。因此 1.0428e+05 的值实际上是 104280

【讨论】:

以上是关于为啥我的输出值为指数格式 1.04e+05? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

数字信号处理基本序列 ( 复指数序列 | 单位复指数序列 | 复变函数欧拉公式 )

为啥我的基本指数函数不起作用? [关闭]

快速提问,为啥我的指数有上限? [复制]

为啥带有十进制值的指数表示法会失败? [关闭]

以指数形式表示数字

为啥基尼指数考虑决策树中的二分法?