我的问题是:假设您已经计算出一个算法,该算法给出了迭代次数,并且您希望打印出迭代次数.但输出总是很多小数位,如下所示:
64.00000000
Run Code Online (Sandbox Code Playgroud)
是否可以通过在R中进行类型转换来获取整数?你会怎么做?
在强制转换为整数模式时有一些问题.据推测,你在某种结构中有各种各样的数字.如果使用矩阵,则打印例程将以相同的精度显示所有数字.如果您使用算术过程计算了此结果,则实际上该值可能小于64位.
> 64.00000000-.00000099999
[1] 64
> 64.00000000-.0000099999
[1] 63.99999
Run Code Online (Sandbox Code Playgroud)
因此,假设您希望所有结构中的所有值都是其中的一部分,以整数形式显示,最安全的是:
round(64.000000, 0)
Run Code Online (Sandbox Code Playgroud)
......因为这可能发生,否则.
> as.integer(64.00000000-.00000000009)
[1] 63
Run Code Online (Sandbox Code Playgroud)
另一个问题是整数的值范围远小于浮点数的范围.
该函数as.integer()将数字截断为 0 阶,因此您必须添加 0.5 以获得适当的近似值
dd<-64.00000000
as.integer(dd+0.5)
Run Code Online (Sandbox Code Playgroud)