I have numeric's like this one:
a <- -1.542045
And I want to round them down (or round up the abs) to 2 digits after the decimal point.
signif(a,3) will round it down and give me 1.54 as a result but for this example the result I want is -1.55.
Any idea?
I think you are looking for floor(a * 100) / 100.
Quick Test
a <- c(-1.542045, 1.542045)
floor(a * 100) / 100
# [1] -1.55 1.54
I just noticed that you changed your question 7 hours ago. Then my answer is not doing exactly what you want (as I am assuming by "rounding down" you always want to round toward -Inf). But I have discussed this in first version of my answer. Now I am going to copy those relevant back here.
sign(a) * ceiling(abs(a) * 100) / 100 you can round data toward Inf for positive values and -Inf for negative values.sign(a) * floor(abs(a) * 100) / 100, you round both positive and negative values toward 0.A quick test
a <- c(-1.542045, 1.542045)
sign(a) * ceiling(abs(a) * 100) / 100
# [1] -1.55 1.55
sign(a) * floor(abs(a) * 100) / 100
# [1] -1.54 1.54
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With