как удалить нули из экспоненциальной нотации

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

0.0001234567

форматирование

(0.0000123456).ToString("E4");

показывает

1.2345E-004

как я могу удалить ведущий нуль из экспоненты, чтобы он читался, как показано ниже?

1.2345E-4

2 ответов


предполагая, что вам нужно всегда показывать 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

цитирую MSDN:

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

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

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

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

для вашего случая это

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

редактировать после комментария Бобсорта

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

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