Your operator takes a non-const reference, therefore it only accepts named variables. And "0.0" is a temporary, not a named variable. Non-const reference should only be used if you want to modify the variable inside the function.
You should take the argument either by value or by const reference.
And I think you'd better have a generic toString() function, instead of such an operator overload. Your implementation is misleading: it replaces the contents of the text instead of concatenating to the current string.