If what you want is for the whole number to change when the value of a single digit changes (i.e. account for rollover / rollunder), then what I would do is to determine which 10s value is represented by the cursor position and add or subtract 10^position to the full number. (In other words, if the cursor is just to the left of the decimal point, you increment by 10^0 (or 1.0). If it is one digit to the right of the decimal point, you increment by 10^-1 (or 0.1). By doing it this way, you don't need to determine -what- the digit is at the cursor position, only what 10s value it represents.
That may be the best way to do it.

Thanks for your input.