dtostrf MAXimum output length

I want to use the dtostrf function to convert a float to a string (Arduino Yun). One thing the really puzzles me is that the documentation reads:

The dtostrf() function converts the double value passed in val into an ASCII representation that will be stored under s. The caller is responsible for providing sufficient storage in s.

Conversion is done in the format "[-]d.ddd". The minimum field width of the output string (including the '.' and the possible sign for negative values) is given in width, and prec determines the number of digits after the decimal sign. width is signed value, negative for left adjustment.

The dtostrf() function returns the pointer to the converted string s.

So the MIN-imum field width can be specified, but what about the maximum? How can I know how many chars would be needed worst case? I have read some topics that claim that "width" chars should be enough. This should be logical, but doesn't match with the documentation, that only mentions a minimum width. E.g. if my float were to be 1234.5 and the given width is 3, would this potentially overflow the buffer?

Also, suppose the width is indeed also the maximum chars the function will write to, does this include any \0 termination?
E.g. if the float is 2.5, and the given width is 3, what will the returned string be?
2.5
2.\0
2.5\0 (hopefully not)

?

Maybe my English is just not good enough to understand the documentation ?

How can I know how many chars would be needed worst case? I have read some topics that claim that "width" chars should be enough.

You know how big the value is. That is, you know how many characters before the decimal point it will need. You know how many places you want after the decimal point. So, you know how many characters overall will be needed. Err on the side of an overly large array.

Thanks for pointing that out, I didn't pay attention that no more than precision chars after the decimal point will be used.