                 if (!isNaN(right))
                      availableWidth -= right;
 
-                childWidth = availableWidth * Math.min(percentWidth * 0.01, 1);
+                childWidth = Math.round(availableWidth * Math.min(percentWidth * 0.01, 1));
                 elementMaxWidth = Math.min(elementMaxWidth,
                     maxSizeToFitIn(unscaledWidth, hCenter, left, right, layoutElement.getLayoutBoundsX()));
             }

                if (!isNaN(bottom))
                    availableHeight -= bottom;    
                    
                childHeight = availableHeight * Math.min(percentHeight * 0.01, 1);
                elementMaxHeight = Math.min(elementMaxHeight,
                    maxSizeToFitIn(unscaledHeight, vCenter, top, bottom, layoutElement.getLayoutBoundsY()));
            }

            if (!isNaN(vCenter))
                childY = Math.round((unscaledHeight - elementHeight) / 2 + vCenter);
            else if (!isNaN(baseline))
                childY = Math.round(baseline - IVisualElement(layoutElement).baselinePosition);
            else if (!isNaN(top))
                childY = top;
            else if (!isNaN(bottom))
