Strings/Floats/Strings.

so yes, can that routine be shortened?

Yes.

      String s = String(Val);

Wasteful. Create in instance of the String class using the value in Val. Then, invoke the copy constructor to transfer the data the the new instance of the String class called s. Then, call the String destructor to get rid on the object on the right.

String s(Val);

One call to the constructor.

Then, you can get the length of the instance. Get the character in that last position of the object. Replace that character with the ., and append what was the last character.

String s(Val); <-- s = "10023"
char last = s.charAt(s.length()-1); < -- last = '3'
s.setCharAt(s.length()-1, ','); <-- s = "1002."
s.append(last); <-- s = "1002.3"

Alternatively, you could divide Val by 10 (to get 1002) and use Val %10 (to get 3), and create 2 strings ("1002" and "3") and concatenate them with a "." between them.

Even better, though, would be to ditch the String class and use a char array. Use the itoa() function to convert the value to a string. copy the last character, replace the last character with the '.', and put the last character where the NULL was, and add a new NULL on the end.