Подтвердить что ты не робот

Как округлить до двух десятичных знаков в строке?

Возможный дубликат:
С# - Как округлить десятичное значение до двух знаков после запятой (для вывода на странице)

string strTemp = "0.51667308807373";

преобразовать в десятичное число путем округления двух знаков после запятой.

4b9b3361

Ответ 1

Math.Round(Convert.ToDecimal(strTemp), 2);

Ответ 2

Сначала преобразуйте строку в десятичную (используя Decimal.Parse или Decimal.TryParse).

decimal d = Decimal.Parse("123.45678");

Затем округлите десятичное значение с помощью Round (d, m), где d - ваш номер, m - количество десятичные знаки, см. http://msdn.microsoft.com/en-us/library/6be1edhb.aspx

decimal rounded = Decimal.Round(d, 2); 

Если вы хотите только округлить для презентации, вы можете пропустить округление до десятичной и вместо этого просто округлить значение в выводе:

String.Format("{0:0.00}", 123.45678m);  

Ответ 3

Преобразуйте значение в число с плавающей запятой, затем округлите его:

double temp = Double.Parse(strTemp, CultureInfo.InvariantCulture);
temp = Math.Round(temp, 2);

В качестве альтернативы, если вы хотите получить результат как строку, просто проанализируйте его и отформатируйте до двух знаков после запятой:

double temp = Double.Parse(strTemp, CultureInfo.InvariantCulture);
string result = temp.ToString("N2", CultureInfo.InvariantCulture);

Примечание. Объект CultureInfo состоит в том, что методы всегда будут использовать период как десятичный разделитель, независимо от настроек локальной культуры.

Ответ 4

var roundedTemp = Math.Round(decimal.Parse(strTemp), 2);

Вы можете проверить, чтобы строка всегда была десятичной, но подумайте, что это ее суть.

Ответ 6

Вы можете использовать информацию о формате номера. Что-то вроде

NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;


double myInt = 0.51667308807373;

// Displays the same value with four decimal digits.
nfi.NumberDecimalDigits = 2;
Console.WriteLine(myInt.ToString("N", nfi));
Console.ReadKey();