Я хотел бы рассказать только одно десятичное место. Я пробовал следующее:
string thevalue = "6.33";
thevalue = string.Format("{0:0.#}", thevalue);
результат: 6.33. Но должно быть 6.3? Даже 0.0 не работает. Что я делаю неправильно?
Я хотел бы рассказать только одно десятичное место. Я пробовал следующее:
string thevalue = "6.33";
thevalue = string.Format("{0:0.#}", thevalue);
результат: 6.33. Но должно быть 6.3? Даже 0.0 не работает. Что я делаю неправильно?
Для этого вам нужно это значение с плавающей запятой.
double thevalue = 6.33;
 Вот демоверсия. Прямо сейчас это просто строка, поэтому она будет вставлена как есть. Если вам нужно проанализировать его, используйте double.Parse или double.TryParse. (Или float, или decimal.)
Вот еще один способ форматирования чисел с плавающей запятой по мере необходимости:
string.Format("{0:F1}",6.33);
		Вот несколько разных примеров:
double l_value = 6;
string result= string.Format("{0:0.00}", l_value );
Console.WriteLine(result);
Выход: 6.00
double l_value = 6.33333;
string result= string.Format("{0:0.00}", l_value );
Console.WriteLine(result);
Выход: 6.33
double l_value = 6.4567;
string result = string.Format("{0:0.00}", l_value);
Console.WriteLine(result);
Выход: 6.46
ToString() упрощает работу.
double.Parse(theValue).ToString("N1")
вариант 1 (пусть это строка):
string thevalue = "6.33";
thevalue = string.Format("{0}", thevalue.Substring(0, thevalue.length-1));
вариант 2 (конвертировать его):
string thevalue = "6.33";
var thevalue = string.Format("{0:0.0}", double.Parse(theValue));
вариант 3 (запустить RegEx):
var regex = new Regex(@"(\d+\.\d)"); // but that everywhere, maybe static
thevalue = regexObj.Match(thevalue ).Groups[1].Value;
		Другие ответы округлились для меня, если я выбрал, скажем, 6.39 или даже что-то вроде 6.398925. Этот подход состоит в том, чтобы преобразовать в строку as-is, затем искать десятичное место и возвращать после него только одно число:
double val = 6.39;
string truncatedString = val.ToString().Substring(0, val.ToString().IndexOf(".") + 2);
Console.WriteLine(truncatedString);
//returns 6.3
		Пожалуйста, это:
String.Format("{0:0.0}", 123.4567); // return 123.5