I occasionally obtain somewhat odd results - floating point precision error - summing in data table. Here is one of those cases.
DT<-data.table(value=c(100.1, 100.4, 100.41, 100.63))
> DT[,sum(value)]-401.54
[1] -5.684342e-14
With slight changes in value, this error doesn't happen. (100.41->100.42, 100.63->100.62)
DT<-data.table(value=c(100.1, 100.4, 100.42, 100.62))
> DT[,sum(value)]-401.54
[1] 0
Why do you think this happens?