Если у вас все в порядке с отображением чисел в научной записи, вы можете указать "E[numberOfDecimalPlaces]"
в качестве строки формата.
Например, если вы хотите ограничить строки, скажем, 12 символами, то, учитывая один символ для десятичной точки и пять символов, необходимых для отображения экспоненциальной части, вы можете сделать:
Function FormatDecimal(ByVal value As Decimal) As String
If value >= 0D Then
Return value.ToString("E5")
Else
' negative sign eats up another character '
Return value.ToString("E4")
End If
End Function
Вот простая демонстрация этой функции:
Dim d(5) As Decimal
d(0) = 1.203D
d(1) = 0D
d(2) = 1231234789.432412341239873D
d(3) = 33.3218403820498320498320498234D
d(4) = -0.314453908342094D
d(5) = 000032131231285432940D
For Each value As Decimal in d
Console.WriteLine(FormatDecimal(value))
Next
Выход:
1.20300E+000
0.00000E+000
1.23123E+009
3.33218E+001
-3.1445E-001
3.21312E+016