I verified that Inquisit is processing decimal values correctly for screen positions.
What screen resolution are you running at? I'm wondering if these fine grained distinctions are being lost simply because you are running at a relatively low screen resolution. Ultimately, Inquisit must specify the pixel where the stimulus should appear, and the number of available pixels is finite and determined by the screen resolution. It's possible that at low resolutions, 47.806% and 47% would both fall within the region of the same pixel.
Let me know your resolution and I can test this hypothesis. If you don't think that's the problem, send your script to inquisit at millisecond dot com, and I'll test it out.
By the way, you should make sure you are running the latest release of 188.8.131.52.
Here's a test script that should help us narrow down the problem. If you run the "test" trial below with the Object Browser, you should see a four text stimuli, all presented at slightly different vertical positions. If the horizontal resolution of your screen is 1680, then the top two stimuli should be left-aligned with each other, and the bottom two should also be left aligned with each other. (If the horizontal resolution of your screen is not 1680, then the stimuli won't be aligned.)
Try it and let me know if it works.
<trial test>/ stimulusframes = [1=showpositionpercent, showpositionpixels, showpositionpercentleft, showpositionpixelsleft]/ response = anyresponse</trial>
<text showpositionpercent>/ items = ("position: <% text.showpositionpercent.hposition %>")/ hposition = 877px/ vposition = 49%/ halign = left</text>
<text showpositionpixels>/ items = ("position: <% text.showpositionpixels.hposition %>")/ hposition = 52.194%/ vposition = 51%/ halign = left</text>
<text showpositionpercentleft>/ items = ("position: <% text.showpositionpercentleft.hposition %>")/ hposition = 803px/ vposition = 52%/ halign = left</text>
<text showpositionpixelsleft>/ items = ("position: <% text.showpositionpixelsleft.hposition %>")/ hposition = 47.806%/ vposition = 53%/ halign = left</text>
I think I've figured out what is going on. Inquisit is positioning the stimuli as it is supposed to. The problem is that some your pictures have a width of 35px. Because that's an odd number, when you specify that the picture should be centered around a point, the right side will have 1px more than the other.
For example, the picture presented at 803px will extend from 786px to 821px, which leaves 17px to the left and 18px to the right. A picture presented at 877px will extend from 860px to 895px, which also leaves 17px to the left and 18px to the right. Effectively, the actual center points of the pictures are 1/2 pixel to the right of the specified center point.
To fix this, you can do one of the following: 1) Use pictures with even numbered pixel widths2) Adjust the position of the right of center pictures leftward by 1 pixel.3) The best option is to not position the pictures using /valign = center, which is the default setting. Instead, set /valign = right for the pictures presented left of center, and /valign = left for pictures presented right of center. That will cause the right and left edges of the pictures respectively to be located at the specified horizontal position. Using that method, you can more easily ensure that both pictures are equidistance from center.
Hmmm. The test script specified those positions both in terms of pixels and percentages, and if they produced the same result in the test script, I'm not sure why they would have produced different results in your script. I could be missing something here though.