Как преобразовать double в строку без представления степени 10 (E-05)C#

Место общения программистов C#
Ответить
Anonymous
 Как преобразовать double в строку без представления степени 10 (E-05)

Сообщение Anonymous »

Как преобразовать значение double в строку без представления степени 10 (E-05)

Код: Выделить всё

double value = 0.000099999999833333343;
string text = value.ToString();
Console.WriteLine(text); // 9,99999998333333E-05
Мне бы хотелось, чтобы строка text имела размер 0,000099999999833333343 (или около того, я не занимаюсь ракетостроением:)

Я пробовал следующие варианты

Код: Выделить всё

Console.WriteLine(value.ToString());      // 9,99999998333333E-05
Console.WriteLine(value.ToString("R20")); // 9,9999999833333343E-05
Console.WriteLine(value.ToString("N20")); // 0,00009999999983333330
Console.WriteLine(String.Format("{0:F20}", value)); // 0,00009999999983333330
Выполнение tostring N20 или формата F20 кажется наиболее близким к тому, что я хочу, но в итоге я получаю много конечных нулей. Есть ли умный способ избежать этого? Я хотел бы получить как можно ближе к двойному представлению 0.000099999999833333343

Подробнее здесь: https://stackoverflow.com/questions/131 ... ation-e-05
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»