找回密码
 立即注册
查看: 3926|回复: 2

rep(1,40*(1-.8)) 为什么输出是7个1,而rep(1,40*(1-.8)+1e-7)的输出是8个1

[复制链接]
发表于 2014-4-14 22:18:36 | 显示全部楼层 |阅读模式
rep(1,40*(1-.8)) 为什么输出是7个1,而rep(1,40*(1-.8)+1e-7)的输出是8个1,请各位大侠指教
回复

使用道具 举报

发表于 2014-4-15 15:17:29 | 显示全部楼层
It's easy to see:
  1. > options(digits=22)
  2. > 40*(1-.8)
  3. [1] 7.999999999999998223643
复制代码
So, by guess, if the times parameter in rep is not integer. Then the rep(1,40*(1-.8))=rep(1,floor(40*(1-.8)))
In another way:
  1. > rep(1,40*(1-.8))
  2. [1] 1 1 1 1 1 1 1
  3. > rep(1,40*(1-.8)+1e-7)
  4. [1] 1 1 1 1 1 1 1 1
  5. > rep(1,40*(1-.8)+1e-77)
  6. [1] 1 1 1 1 1 1 1
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-4-16 22:38:49 | 显示全部楼层
前面没有这个options(digits=22)的时候,


> 40*(1-.8)
[1] 8
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 11:25 , Processed in 0.024335 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表