Как я препятствую тому, чтобы мое двойное значение было округлено при преобразовании в строку? Я попробовал обоих Convert.ToString
и ToString()
с тем же результатом.
Например, мое двойное может посмотреть что-то как 77.987654321
, и два строковых преобразования преобразовывают в к 77.98765
. Я должен сохранить точность значения, как.
По умолчанию метод .ToString ()
двойной
возвращает 15 цифр точности. Если вы хотите полные 17 цифр, что двойное значение удерживает внутренне, вам необходимо пройти спецификатор формата «G17» в метод.
String s = value.ToString("G17");
Получены из MSDN Docs :
по умолчанию только возвращаемое значение только Содержит 15 цифр точности Хотя максимум 17 цифр поддерживается внутри. Если значение Этот экземпляр превышает 15 Цифры, ToString возвращает Положительнаяinfinitysymbol или Отрицатьfinitysymbol вместо Ожидаемый номер. Если вам требуется больше точность, укажите формат с Спецификация формата «G17», которая всегда возвращает 17 цифр точности, или «R», который возвращает 15 цифр, если номер можно представить с этим точность или 17 цифр, если число можно представить только с максимумом точность.
Попробуйте что-то вроде
myDouble.ToString("R")
см. Также R ") Спецификатор формата :
Спецификатор формата Wrund-Trip (« R ») гарантирует, что числовое значение, которое преобразуется в строку, будет проанализирован обратно в то же числовое значение.
DoubleConverter Jon Skeet
[1133341] - это метод TexactStString ()
, который вернет точное значение двойного в виде строки.