replace "round" with "floor" to avoid unexpected round-to-even behavior