toString is a very special method. It does not mean "User display string" by any stretch of the imagination (although it often happens to coincide, as with "String's" toString method)
It's actually for developers to be able to instantly grok what an object is (primarily as a debug output).
For anything to be printed out by a user, it should rendered through a formatter anyway to ensure correct max size, number of decimal points, and decimal indicator (. or ,).
In Java code, 0.0 is automatically cast to a double, so it makes perfect sense that a double would print as 0.0--it means "this is a double". I'm a little surprised it doesn't end with an "f" or "d", but that would actually be really annoying because the toString for int's is really really useful and to constantly follow it with an "i" would have pissed everyone off.