BinLists drops elements whose values do not correspond to real numbers.
Within each bin, elements appear in the same order as in the original data.
BinLists takes the bin boundaries to be integer multiples of dx, with the first bin starting at Ceiling[Min[data]-dx, dx] and the last bin ending at Floor[Max[data]+dx, dx].