I hope Development is the right corner for this.
So, here is an easy way to print floats with more than 2 digits precision through Serial.
First open the file Print.h in your folder hardware/cores/arduino/ and add the following to the public functions of the class:
Now you can call Serial.println(FLOAT,INT) where INT is the desired precision.
Here is a short sketch that reads in the value of Analogpin 0, converts it to a Voltage between 0V and 5V and sends the value via Serial.
Why did you declare the new functions taking doubles, when you then call printFloat which takes a float? A double that is outside the range of a float will not print properly.
at this point the name of the function is not perfect.
When you look into Print.h or Print.cpp you see that the printFloat-function expects indeed a double and not a float.
So there should be no problems.
With "dirty" i would like to say that it doesnt fit to the feeling of the rest of the Arduino IDE in my opinion.
We are using the Arduino platform in an exercise attending a lecture at university and some of the students never did some programming with c (or another language). Then it would be simpler for them (and also for me ) to not have to do an explicit cast but let the software do it automatically behind the scenes.
Otherwise there would be some question why it is not working when they use print(int,int) and why it works when they just use print(int)
Ok, then i will continue to use it with the new Print::print overload and see if there are other problems.