Well, the main thing that this floating point sort routine does is, instead of multiplying Result by 10 as it does with integers, it divides the increased amount by 10 after reaching a decimal separator. This way the function returns a double numerical value which can be compared with another.
For integer values:
First char: '1'
Second char: '2'
So the number is 12. It is 1 * 10 + 2. (FirstChar * 10 + SecondChar).
But for floating values:
First char: '1'
Second char: decimal separator
Third char: '2'
So the number is 1.2. It is 1 + 2 / 10. (FirstChar + SecondChar / 10).
And Count is the distance between the current char and the decimal separator.
So the routine "translates" the char to its numerical value.