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

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

0.0001234567

Форматирование с

(0.0000123456).ToString("E4");

Шоу

1.2345E-004

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

1.2345E-4

person AaA    schedule 09.01.2012    source источник


Ответы (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
person Bistro    schedule 09.01.2012
comment
Ваше предположение верно, мне нужна одна цифра до и 4 цифры после запятой. - person AaA; 09.01.2012

Цитирование 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
person CharlesB    schedule 09.01.2012
comment
ваш ответ достаточно близок, единственная проблема в том, что научному понятию нужна только одна цифра до десятичной точки. Думаю, мне нужно удалить # из начала строки формата - person AaA; 09.01.2012