全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1487 6
2017-04-25
O8~V@)YVP9GW`CJ4J[0BOI9.png 4]K)O`D)}I[UP73H3Y97A_G.png
5ZJWMP52%O{Y[HP3ESR4~)7.png

这个不应该都是False吗?我用的as.numeric()都不行,直接换成89.98就行了,为什么?
附件列表
O8~V@)YVP9GW`CJ4J[0BOI9.png

原图尺寸 17.67 KB

O8~V@)YVP9GW`CJ4J[0BOI9.png

4]K)O`D)}I[UP73H3Y97A_G.png

原图尺寸 17.01 KB

4]K)O`D)}I[UP73H3Y97A_G.png

5ZJWMP52%O{Y[HP3ESR4~)7.png

原图尺寸 18.2 KB

5ZJWMP52%O{Y[HP3ESR4~)7.png

二维码

扫码加我 拉你入群

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

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

全部回复
2017-4-25 11:45:47
一种可能是space[5]你看到的89.98是一个近似数。
根据你提供的信息,一种可能的情况是:
space[5]是比89.98小的数,比如 89.978888888这样的数,然后在R里面显示的是89.98.所以当真的89.98出来时,肯定比space[5]这个假的89.98要大一些了。
二维码

扫码加我 拉你入群

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

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

2017-4-25 12:45:19
jiangbeilu 发表于 2017-4-25 11:45
一种可能是space[5]你看到的89.98是一个近似数。
根据你提供的信息,一种可能的情况是:
space[5]是比89. ...
多谢回答,我是用以下方法生成的
CM])6SMAH54M3R$SM@I7VEM.png
二维码

扫码加我 拉你入群

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

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

2017-4-25 14:42:22
pressure$Close 这个向量的数据结构,可能并不是两位小数。
二维码

扫码加我 拉你入群

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

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

2017-4-25 15:50:12
先看这样的例子:
复制代码

然后会发现,问题简化之后,变成:
89.96+0.02==89.98
为什么结果是FALSE

看一下两种形式在R里存储的情况:
复制代码

然后,会发现其实计算机在计算小数时,跟我们的直觉是不同的,应该是在计算 89.96+0.02,89.96被转化成另一种形式的数据,0.02也是,在计算后,再转化成十进制的数,变成89.98,当然这个89.98是一个约数。
而直接对89.98进行转化,得到的结果并不一定与89.96+0.02计算的结果完全一致,但精度是得到保证的。
在判断时,用all.equal会好一些。
复制代码

这个得到的结果是TRUE。
二维码

扫码加我 拉你入群

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

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

2017-5-17 15:00:02
jiangbeilu 发表于 2017-4-25 15:50
先看这样的例子:

然后会发现,问题简化之后,变成:
恩恩,那要是>,     <怎么比较呢,有什么样的函数
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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