如果回复 第2楼 的 lyxmoo:
如果将分子和分布同时乘以10000,就得到了我期望的结果81
<br />
> floor((0.0162 * 10000) / (0.0002*10000))<br />
[1] 81<br />
</p>
这个是因为浮点数存储方面的原因, 0.0162实际上存储的值为0.01619999999999999912292。看看下面的几个例子。
<br />
> options(digits=22)<br />
> x <- 0.0162<br />
> x<br />
[1] 0.01619999999999999912292<br />
> x <- 0.162<br />
> x<br />
[1] 0.162000000000000005107<br />
><br />
> x <- 0.01620000001<br />
> x<br />
[1] 0.0162000000099999999503<br />
</p>
在浮点数进行比较的时候也会遇到同样的问题。但是可以使用.Machine$double.eps来避免这个问题。
只是不知道在求模数的时候用什么方法。