楼主: skyman190
2276 7

[求助]新手关于R的程序问题,熟悉R的人请进。 [推广有奖]

  • 2关注
  • 0粉丝

研究生

已卖:389份资源

副教授

39%

还不是VIP/贵宾

-

威望
0
论坛币
364 个
通用积分
46.4613
学术水平
5 点
热心指数
13 点
信用等级
4 点
经验
61307 点
帖子
556
精华
0
在线时间
1046 小时
注册时间
2008-10-29
最后登录
2025-11-13

楼主
skyman190 发表于 2009-4-3 16:20:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

以下是R的程序和输出结果:

> 1000 * (.15 + .3) - 450
[1] -5.684342e-14

Q1:按常理结果应该是0,但输出结果却是一个科学计数法,我想是不是R系统考虑到精度的问题了。


> 1000*(.15 + .3) == 450
[1] FALSE

Q2:输出结果是一个逻辑形式,是不是“==”不能连接同一类型的表达式。

[此贴子已经被作者于2009-4-3 16:22:48编辑过]

二维码

扫码加我 拉你入群

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

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

关键词:科学计数法 输出结果 LSE 表达式 计数法 求助 程序 新手

回帖推荐

vul31l301 发表于7楼  查看完整内容

round( 1000 * (.15 + .3) - 450 , 2 )加上 round 限定他出來的小數位數

king64 发表于6楼  查看完整内容

哈哈!大家只是按数学来想问题。实际上,R在计算上述公式时,先把数字转换为二进制,然后计算,显示或输出结果也是同样,只是反方向操作而已。微小的误差,比如 -5.684342e-14就是在上述过程产生的。我的理解不一定准确,大家可以参考一些R的书籍,基本都有相关的介绍。

本帖被以下文库推荐

用统计这一有利的武器去战胜一切未知的世界

沙发
yuyiwuh 发表于 2009-4-3 20:27:00
呵呵这个很奇怪,你试试1000*(.25+.2)-450
出来的居然就是0

藤椅
yahoocom 发表于 2009-4-3 22:35:00

确实有点怪,

> 1000 * (.15 + .3)
[1] 450
这个结果还算是对的。

板凳
skyman190 发表于 2009-4-3 23:12:00

对啊,为什么一减去450出现的是科学计数法,而不是0呢!!!

用统计这一有利的武器去战胜一切未知的世界

报纸
平常 发表于 2009-4-3 23:17:00
“==”是个逻辑运算符

地板
king64 发表于 2009-4-4 06:59:00

哈哈!

大家只是按数学来想问题。实际上,R在计算上述公式时,先把数字转换为二进制,然后计算,显示或输出结果也是同样,只是反方向操作而已。

微小的误差,比如 -5.684342e-14就是在上述过程产生的。

我的理解不一定准确,大家可以参考一些R的书籍,基本都有相关的介绍。

已有 1 人评分论坛币 收起 理由
crystal8832 + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

7
vul31l301 发表于 2009-4-9 14:51:00

round( 1000 * (.15 + .3) - 450 , 2 )

加上 round 限定他出來的小數位數

已有 1 人评分论坛币 热心指数 收起 理由
crystal8832 + 10 + 1 热心帮助其他会员

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

8
skyman190 发表于 2009-4-9 22:34:00
试过了,输出的结果是0,谢谢七楼的兄弟!!
用统计这一有利的武器去战胜一切未知的世界

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 02:40