Я пытаюсь преобразовать число с плавающей точкой в строку, не получая научное (1.13E-8) форматирование.
Я ищу некоторую комбинацию спецификаторов "F" и "R".Я хочу, чтобы F не использовал научный стиль, но я также хочу, чтобы R использовал как можно меньше места для точного представления числа.
Итак, с учетом 0,000000001, строковая версия должна быть0,000000001.Не 1E-09 и не 0,000000001000.
Можно ли сказать системе "сделать ее фиксированной точкой, но использовать минимальные цифры, необходимые для точного указания числа"?
Если нет,каким будет хороший обходной путь?Я думал: использовать точность 20, а затем просто взломать конечные 0, если есть '.'в строке.Что-нибудь лучше?
Редактировать:
Вот версия, которую я использовал.Я действительно надеялся, что будет спецификатор формата, который я мог бы использовать, чтобы сделать это вместо этого.
var s = f.ToString("F20");
if (s.Contains("."))
{
s = s.TrimEnd('0').TrimEnd('.');
}