C # Получить точное формирование строки из типа «двойной» - PullRequest
0 голосов
/ 04 сентября 2010

Поскольку я работаю над C #, у меня есть одно поле с именем «Сумма».

double amount = 10.0;

Итак, я хочу получить результат как '10.0' после преобразования его в строку.

Если мое значение

amount = 10.00, тогда я хочу получить результат '10.00' после преобразования его в строку.

Итак, в основном я хочу получить точный результат в строке, как в двойном типе. (С точностью).

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 04 сентября 2010
string result = string.Format( "{0:f2}", amount );
1 голос
/ 04 сентября 2010

То, что вы спрашиваете, невозможно. double в C # - это простое 64-битное значение с плавающей точкой. Это не хранит точность. Вы можете напечатать свое значение с одним или двумя десятичными знаками, как описывают другие ответы, но не так, чтобы «сохранить» исходную точность переменной.

0 голосов
/ 04 сентября 2010

Как указывает @ Майкл Петратта , double не несет с собой точности ввода.Если вам нужна эта информация, вам нужно будет сохранить ее самостоятельно.Затем вы можете восстановить входную строку, выполнив что-то вроде:

static public string GetPrecisionString( double doubleValue, int precision)
{
    string FormattingString = "{0:f" + precision + "}";
    return string.Format( FormattingString, doubleValue);
}
0 голосов
/ 04 сентября 2010
string amountString = amount.ToString("N2");

«N2» - это строка формата, используемая в качестве первого параметра метода .ToString ().

«N» обозначает число, а 2 обозначает количество десятичных знаков.

Подробнее о формате строки здесь: http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...