как я могу удалить нули из обозначения экспоненты - PullRequest
11 голосов
/ 09 января 2012

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

0.0001234567

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

(0.0000123456).ToString("E4");

Показывает

1.2345E-004

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

1.2345E-4

Ответы [ 2 ]

11 голосов
/ 09 января 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
3 голосов
/ 09 января 2012

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