String.Format - Jak mogę sformatować do x cyfr (niezależnie od miejsca dziesiętnego)?

Muszę sformatować liczbę zmiennoprzecinkową na znaki x (w moim przypadku 6 w tym kropka dziesiętna). Moje dane wyjściowe muszą także zawierać znak numeru

Biorąc pod uwagę dane wejściowe, oto oczekiwane wyniki

1.23456   => +1.2345

-12.34567 => -12.345

-0.123456 => -0.1234

1234.567  => +1234.5

Załóżmy, że zawsze jest miejsce dziesiętne przed ostatnim znakiem. To znaczy. nie będzie12345.6 wprowadzanie liczb - wejście będzie zawsze mniejsze lub równe9999.9.

Myślę, że trzeba to zrobić warunkowo.