全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3088 4
2022-04-08
请教各位大神,我对该向量 e=c(1.123426,-0.123426,-6.0034123,5.0034123)中的所有数值元素求和,实际上为0,我随后用了sum函数运算,结果如下:
> sum(e)
[1] 4.163336e-17
结果却不为0,不知道问题出在哪里?
二维码

扫码加我 拉你入群

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

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

全部回复
2022-4-9 22:28:04
浮点数据造成的,
dplyr::near(sum(e), 0)
# TRUE
二维码

扫码加我 拉你入群

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

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

2022-4-9 23:28:00
cheetahfly 发表于 2022-4-9 22:28
浮点数据造成的,
dplyr::near(sum(e), 0)
# TRUE
哦,原来这样,那原始数据应该怎样处理,用sum函数运算结果才为0?
二维码

扫码加我 拉你入群

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

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

2022-4-10 10:00:02
原始数据不用处理,因为再怎么处理还是浮点数,就会存在浮点数精度问题。只要处理结果就行,4.163336e-17几乎就是零,比如用round(sum(e),6)
二维码

扫码加我 拉你入群

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

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

2022-4-10 15:51:29
llb_321 发表于 2022-4-10 10:00
原始数据不用处理,因为再怎么处理还是浮点数,就会存在浮点数精度问题。只要处理结果就行,4.163336e-17几 ...
嗯,明白了,谢谢各位!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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