It's easyer said than done that way.
What is? You said that the String part was simply to strip out the decimal point from the string. And that's what I see happening.
char tBuffer[16];
stringOne = dtostrf(temp,8,2,tBuffer);
if (value == 1) // 999.9 or -99.9 numbers
stringOne = stringOne.substring(2,5)+stringOne.substring(6,7);
else if (value == 3) // 9999 or -999 numbers
stringOne = stringOne.substring(2,6);
else // 99.99 or -9.99 numbers
stringOne = stringOne.substring(3,5)+stringOne.substring(6,8);
You can copy the elements of tBuffer to another char array array the same way.
char cBuffer[16];
int j=0;
if (value == 1) // 999.9 or -99.9 numbers
{
for(int i=2; i<5; i++)
{
cBuffer[j++] = tBuffer[i];
}
cBuffer[j++] = tBuffer[6];
cBuffer[j] = '\0';
}
// The other cases work exactly the same
Now, you have a static array of characters instead of dynamic String with all it's overhead and issues.
If the downstream use of the data requires a String object, I wouldn't be using whatever library REQUIRES a String.