Как только вы удалите достаточно цифр со спины, оставшееся число будет иметь нулевое значение, и в этот момент существование "-
" не будет иметь реального значения.
Это можно понять интуитивно, запустив приведенный ниже фрагмент кода с уменьшающимся числом, указанным для спецификатора с фиксированной точкой .
В последней строке этот спецификатор опущен, в этот момент NumberFormatInfo.NumberDecimal определяет количество используемых десятичных знаков (в зависимости от используемой культуры):
var smallneg = -3.65433E-005;
Console.WriteLine(smallneg.ToString("F10")); // -0,0000365433
Console.WriteLine(smallneg.ToString("F9")); // -0,000036543
Console.WriteLine(smallneg.ToString("F8")); // -0,00003654
Console.WriteLine(smallneg.ToString("F7")); // -0,0000365
Console.WriteLine(smallneg.ToString("F6")); // -0,000037
Console.WriteLine(smallneg.ToString("F5")); // -0,00004
Console.WriteLine(smallneg.ToString("F4")); // 0,0000 <-- Zero --> (-0) == 0
Console.WriteLine(smallneg.ToString("F")); // 0,00