What are you talking "weird"? There's nothing weird going on. Both strings are "1.2".
If you're talking about doing this:
string sWeird = "" + d;
and wondering why it's working, it's because the .ToString() is being implicitly called on
d
to make the expression
string.Empty + d
work.