使用trunc函数时出现问题

时间:2019-09-24 02:46:38

标签: r

我在R中使用此功能时遇到问题。我不知道为什么trunc(z)是637而不是x = 51/80*100是638。

x <- 51/80*100
x
#[1] 63.75

z = abs(x)*10^1
z = z + 0.5
z
#[1] 638
z = trunc(z)
z
#[1] 637
z = z/10^1
z
#[1] 63.7

1 个答案:

答案 0 :(得分:0)

@ d.b已经指出z是数字,对于数字,您不一定会看到。

检查

formatC(z, digits = 14, format = "f")
#[1] "637.99999999999989"

(您可能必须在系统上更改digits参数)

如果将其转换为整数,也会得到

as.integer(z)
#[1] 637

在使用数字之前,您可以round使用数字

trunc(round(z))
#[1] 638