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


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

0.0001234567

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

(0.0000123456).ToString("E4");

Показывает

1.2345E-004

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

1.2345E-4
2 11

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

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

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

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