i have an issue when i using this function in R. I don't know why trunc(z)
is 637 instead of 638 as x = 51/80*100
.
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
i have an issue when i using this function in R. I don't know why trunc(z)
is 637 instead of 638 as x = 51/80*100
.
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
As @d.b already pointed out that z
is numeric and with numerics you don't necessarily have what you see.
Check
formatC(z, digits = 14, format = "f")
#[1] "637.99999999999989"
(You might have to change digits
argument on your system)
Also if you convert it to integer, you get
as.integer(z)
#[1] 637
You can round
the numeric before using them
trunc(round(z))
#[1] 638