When dealing with fractional pixels, things can get complicated. However, if your percentage values result in whole pixel values (like 50.5% of 200px in this case), you can expect sensible and predictable behavior.
For example:
<div id="percentage">
<div class="first">50%=100px</div>
<div class="second">50.5%=101px</div>
<div class="third">51%=102px</div>
</div>
<br />
<div id="pixels">
<div class="first">50px</div>
<div class="second">50.5px</div>
<div class="third">50.6px</div>
<div class="fourth">51px</div>
</div>
#percentage
{
width: 200px;
color: white;
}
#percentage .first
{
width: 50%;
height: 20px;
background-color: red;
}
#percentage .second
{
width: 50.5%;
height: 20px;
background-color:green;
}
#percentage .third
{
width: 51%;
height: 20px;
background-color:blue;
}
#pixels
{
color: white;
}
#pixels .first
{
width: 50px;
height: 20px;
background-color: red;
}
#pixels .second
{
width: 50.5px;
height: 20px;
background-color:green;
}
#pixels .third
{
width: 50.6px;
height: 20px;
background-color:blue;
}
#pixels .fourth
{
width: 51px;
height: 20px;
background-color:red;
}