The values are not actually getting truncated, they are just displayed with fewer decimal places for presentation purposes, the actual values are still with full precision, having said that, I think you should check your code since it seems it has several issues.
An example just to illustrate
library(dplyr)
sample_df <- data.frame(
stringsAsFactors = FALSE,
Machine.Name = c("AMS-L-94741.europe.shell.com",
"AMS-L-95267.europe.shell.com",
"PHC-D-91943.africa-me.shell.com","SERHO-L-84510.asia-pac.shell.com",
"SERHO-L-91604.asia-pac.shell.com",
"STCB-L-97240.asia-pac.shell.com","STCB-L-97779.asia-pac.shell.com",
"W180402.corp.pdo.om","W180402.corp.pdo.om","WDLVMMPLDS1.d2kbinz.local"),
Region = c("Europe","Europe","Africa",
"APAC","APAC","APAC","APAC","PDO","PDO","Americas"),
Month = c("July","August","January",
"July","August","August","August","July","August",
"August"),
Year = c(2020,2020,2020,2020,2020,
2020,2020,2020,2020,2020),
Server = c("AMSDC-1-S-90588",
"AMSDC-1-S-90588","AMSDC-1-S-90588","PEJJBT-S-8008",
"PEJJBT-S-8008","PEJJBT-S-8008","PEJJBT-S-8008","AMSDC-1-S-90588",
"AMSDC-1-S-90588","HOUCY1-S-07400"),
sum_as_hours = c(1895.5,1471.2,1156.567,
734.234,740.3,740.568,740.632,951.245,1053.42,740.53)
)
new_df <- sample_df %>%
group_by(Month,Region,Server) %>%
top_n(10, sum_as_hours)
new_df$sum_as_hours
#> [1] 1895.500 1471.200 1156.567 734.234 740.300 740.568 740.632 951.245
#> [9] 1053.420 740.530
Created on 2020-09-29 by the reprex package (v0.3.0)