I am trying to sort an array of objects, but the result seems incorrect.
The sort is performed as below:

The expression in the screenshot is:
sort(sort(first(body('Select')),'BoundingBoxleft'),'BoundingBoxtop')
The result looks like this:

The red arrow indicates how I think the sort 'should' work - the coordinate values should be sorted as:
[0.21,0.39]
[0.21,0.44]
[0.21,0.63]
Please help? I think this might be a weird float/rounding issue, but please forgive me if I've missed something obvious.
Additional context:
For reference, I'm trying to fix a broken 'AI builder' OCR output - it reads values from a PDF out of order. Instead of reading like a human would, it outputs a piece of text on e.g. "Line 2" of a document wedged between the values taken from "Line 1"
Example (not actual text from a document):
Line 1: "Sally jumped far,"
Line 2: "but Bill jumped farther"
Becomes:
Line 1: "Sally jumped jumped far farther",
Line 2: "but Bill"
The BoundingBox top/left values are essentially just [x,y] coordinates that describe positions of text in the document (I have redacted the associated text values from the array in the screenshot). I have rounded the float values (e.g. 0.2063754848 whatever) to 2 decimal places with the expression:
float(formatNumber(<value>,'0.00'))
And then map them into an array of objects using a Select statement.
I then try to stash these in a variable, sorted as described above. Please let me know if you can help.