Как преобразовать в удвоение с точностью 2 - строка за точкой? - PullRequest
25 голосов
/ 14 февраля 2011

Я хочу преобразовать эту строку: 0.55000000000000004 в эту двойную: 0.55.Как это сделать?

Ответы [ 3 ]

51 голосов
/ 12 августа 2012

Вы можете использовать этот код для уменьшения точности детали:

double m = Math.Round(0.55000000000000004,2);

Результат будет: 0,55

30 голосов
/ 14 февраля 2011

Строка или двойка? Если это строка:

double d = double.Parse(s,CultureInfo.InvariantCulture);
string s=string.Format("{0:0.00}",d);

, если это уже двойной формат с использованием второй строки.

12 голосов
/ 14 февраля 2011

Там нет double 0.55 - число не может быть точно представлено в виде двоичной дроби. Что, вероятно, является причиной, почему вы получили эту длинную строку в первую очередь. Вы, вероятно, должны использовать тип decimal вместо double.

Прочитайте Руководство с плавающей точкой , чтобы понять, почему.

...