Возможный дубликат:
С# - Как округлить десятичное значение до двух знаков после запятой (для вывода на странице)
string strTemp = "0.51667308807373";
преобразовать в десятичное число путем округления двух знаков после запятой.
Возможный дубликат:
С# - Как округлить десятичное значение до двух знаков после запятой (для вывода на странице)
string strTemp = "0.51667308807373";
преобразовать в десятичное число путем округления двух знаков после запятой.
Math.Round(Convert.ToDecimal(strTemp), 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);
Преобразуйте значение в число с плавающей запятой, затем округлите его:
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
состоит в том, что методы всегда будут использовать период как десятичный разделитель, независимо от настроек локальной культуры.
var roundedTemp = Math.Round(decimal.Parse(strTemp), 2);
Вы можете проверить, чтобы строка всегда была десятичной, но подумайте, что это ее суть.
вы можете использовать информацию по этой ссылке http://www.csharp-examples.net/string-format-double/ для двойного значения, используйте double.parse api
Вы можете использовать информацию о формате номера. Что-то вроде
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();