Given a set of rectangles we are asked to pack as many of them as possible into a bigger rectangle. The rectangles packed may not overlap and may not be rotated. This problem is NP-hard in the strong sense even for packing squares into a square. We establish the relationship between the asymptotic worst-case ratio and the (absolute) worst-case ratio for the problem. It is proved that there exists an asymptotic FPTAS, and thus a PTAS, for packing squares into a rectangle. We give an approximation algorithm with asymptotic ratio of at most two for packing rectangles, and further show a simple (2 + ε)-approximation algorithm.