全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
28824 1
2018-08-24
我运行程序的时候,结果为2.2e-2,请问这是什么意思呀?是e-2,还是e^(-2)还是10^(-2)
我做了一个判断,结果是这样的:
> 2.2e-2==2.2*10^-2
[1] FALSE
> 2.2e-2<2.2*10^-2
[1] TRUE
> 2.2e-2==2.2*10^(-2)
[1] FALSE
> 2e-2==2*10^-2
[1] TRUE

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-8-25 22:39:20
2.2e-2就是2.2*10^(-2)的意思,也就是科学计数法。你之所以会产生疑问,是因为在计算机中,浮点数的比较有些麻烦,有时会让你摸不着头脑,比如:
sqrt(2) ^ 2 == 2
##[1] FALSE
sqrt(2) ^ 2 - 2
## [1] 4.440892e-16

同理,
2.2e-2 - 2.2 * 10 ^ (-2)
[1] -3.469447e-18

这实际上是电脑算法产生的细微误差,如果用"=="或者identical(),可以捕捉到这些细微误差,但如果我们需要忽略这些误差的时候,可以用“all.equal()”来避免这些令人尴尬的比较结果,比如:

all.equal(2.2e-2, 2.2 * 10^(-2))
##[1] TRUE
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群