String.Format - Como posso formatar para x dígitos (independentemente da casa decimal)?

Eu preciso formatar um número de ponto flutuante para x caracteres (6 no meu caso, incluindo o ponto decimal). Minha saída também precisa incluir o sinal do número

Então, dadas as entradas, aqui estão as saídas esperadas

1.23456   => +1.2345

-12.34567 => -12.345

-0.123456 => -0.1234

1234.567  => +1234.5

Por favor, suponha que há sempre uma casa decimal antes do último caractere. Ou seja não haverá12345.6 entrada numérica - a entrada será sempre menor ou igual a9999.9.

Eu estou pensando que isso tem que ser feito condicionalmente.

questionAnswers(7)

yourAnswerToTheQuestion