floor() behaves identically to trunc() for positive numbers only; for negative numbers floor() will round away from zero while trunc() rounds toward zero. ceil() or ceiling() has the same dual-behavior - though in reverse compared to floor() - for positive/negative numbers.