This is happening because when a returned value ends with a 0 after the decimal point, it cuts that 0 off and when column B or C substitute that number, in the original text, then all the digits before the last 0 are substituted only, leaving a 0 behind in the original text and so the formula thinks that lone 0 is a number and extracts it...
To resolve that, convert the number to replace to a text string forcing 2 decimal places.. so that the full number gets subbed including any possible ending 0... harder to explain than to see...
anyways, replace formula in B1 with:
and formula in C1 with:
and copy them down.
Note the red parts are the "fixed" parts...
Also note, that you have many of these, the process may be slow...
one way to reduce the slowness is to change the 1000 in the formulas to a number that represents the longest a string in column A may be... for example 200 characters?.. I used 255 in the attached sheet and it got all the numbers required faster...
Bookmarks