Есть программа, она может выдать и нормальные значения (10.10 к примеру), а может и "корявые". К примеру, 3.333333e что-то типа такого. Нужно сделать проверку на вот эту "e", чтобы в результат не выдавались те числа, в которых присутствует "e".
По умолчанию при преобразовании числа в строку (а для вывода его на экран это обязательно) выбирается кратчайшая запись между обычной (как вы привыкли со времен школы) и экспоненциальной. Чтобы изменить это поведение, вам придется указать формат явно.
Для того чтобы форматтер отбрасывал незначащие цифры, используйте заместитель цифры #
:
var x = 0.00001 / Math.PI;
Console.WriteLine(x);
Console.WriteLine(x.ToString("0.#########################"));
// 3,18309886183791E-06
// 0,00000318309886183791
Если вы не знаете заранее каких минимальных значений могут достигать ваши числа, можно написать что-то вроде:
public static readonly string doubleSchoolFormat = "0." + new string('#', 324);
...
var x = 1E-300 / Math.PI;
Console.WriteLine(x);
Console.WriteLine(x.ToString(doubleSchoolFormat));
// 3,18309886183791E-301
// 0,000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000318309886183791
Строки настраиваемых числовых форматов
double (справочник по C#)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пишу небольшую утилиту, которая имеет необходимость раз в несколько секунд выполнять какую-либо команду командной строке Windows от имени администратораСоздавать...
У меня есть классМне нужно делать таких экземпляров много