A few thoughts:
1) don't use arange() for flaoting point numbers, use linspace().
2) histogram1d is a floating point function, and you shouldn't expect exact results for floating point -- in particular, values exactly at the bin boundaries are likely to be "uncertain" -- not quite the right word, but you get the idea.
3) if you expect have a lot of certain specific values, say, integers, or zeros -- then you don't want your bin boundaries to be exactly at the value -- they should be between the expected values.
4) remember that histogramming is inherently sensitive to bin position anyway -- if these small bin-boundary differences matter, than you may not be using teh best approach.
-HTH,
-Chris