The function you have defined make no sense to me. I do not know what you really want to do.
Why you need to display the same value twice?

If you type "text", it mean a string with value "text";
However, text is a double when you declare the function.
It was never been used in your function.
And the screen shown what you asked for, add "text" after the displayed alue.

for example: if you defined a string variable called unit.
And set unit="cm";
Then return (int)(v*divider+dv)/divider+unit;
will add "cm" after the displayed value.

The type of (int)(v*divider+dv)/divider  is integer.
When I type (int)(v*divider+dv)/divider+"",
add integer and string together do not make sense, so the program change the integer to string and add(concate) two strings together.

If you want to show "[b]vx= 2.3 ??[/b]" in the simulation
change the code to [b](int)(vx*100.+0.5)/100.+"=vx[u] ??[/u]"[/b]
will do what you wanted.