Значение C # Round Scientific Notation

У меня есть небольшое двойное значение, отформатированное в экспоненциальном формате. Когда я показываю значение, оно отображается в формате 1.34423E-12 с 5 цифрами после запятой. Я хотел бы округлить это значение, чтобы оно отображалось как 1.344E-12.

Есть ли встроенный способ округления значения в научном представлении до x десятичных знаков?


person Derek    schedule 13.08.2014    source источник


Ответы (1)


Используйте строку формата, например

double d = 1.34423e-12;
string formattedValue = d.ToString("E3");

Здесь "E" означает использование научного обозначения (с заглавной буквы "E", используйте "e", если хотите маленькое ...), а 3 означает три цифры после десятичной точки.

См. Строки стандартного числового формата в MSDN, чтобы увидеть другие варианты. Документация для метода String.Format также содержит полезную информацию о форматировании значений.

ИЗМЕНИТЬ

Если вам нужна большая гибкость, вы можете использовать Пользовательский числовой формат Строки. Используя их, вы можете, например, также укажите количество цифр, используемых для экспоненты, например

d.ToString("0.000E0"); // -> Results in "13.344E-12" instead of "13.344E-012"
d.ToString("0.000E0000"); // -> "13.344E-0012"
person MartinStettner    schedule 13.08.2014
comment
Здорово! Именно то, что я искал. Есть ли способ предотвратить изменение E-12 на E-012? - person Derek; 13.08.2014
comment
Да, это тоже возможно: см. Правку в моем ответе. - person MartinStettner; 13.08.2014