Как я могу удалить нули из показательной записи

Я использую экспоненциальное форматирование для форматирования десятичного числа в С#. Например, если число

0.0001234567

Форматирование с помощью

(0.0000123456).ToString("E4");

Показывает

1.2345E-004

Как удалить исходный ноль из экспоненты, чтобы он читался ниже?

1.2345E-4

Ответ 1

Предполагая, что вам нужно всегда показывать 4 цифры после десятичной точки, попробуйте

"0.0000E+0"

чтобы он показывал

(0.0000123456).ToString("0.0000E+0"); //1.2345E-5 
(0.0000120000).ToString("0.#E+0");    //1.2000E-5

если вам не нужно показывать 4 цифры после десятичных точек, используйте

"0.#E+0"

чтобы он показывал

(0.0000123456).ToString("0.#E+0"); //1.2E-5
(0.0000120000).ToString("0.#E+0"); //1.2E-5

Ответ 2

Цитата MSDN:

Случай спецификатора формата указывает, следует ли префикс экспонента "E" или "e". Показатель всегда состоит из знака плюс или минус и минимум трех цифр. Экспонент заполняется нулями, чтобы соответствовать этому минимуму, если требуется.

Это со спецификатором стандартного номера.

Однако с пользовательским номером формата вы можете установить число 0:

987654 ("#0.0e0") -> 98.8e4

В вашем случае это

(0.0000123456).ToString("#0.0E0"); //12.3E-6

Изменить после комментария BobSort

Если вам нужна научная нотация, вы можете указать, что вам нужна только одна цифра перед десятичной со следующим:

(0.0000123456).ToString("0.00#E0"); //1.23E-5