26

我只想显示一位小数。我尝试了以下方法:

string thevalue = "6.33";
thevalue = string.Format("{0:0.#}", thevalue);

结果:6.33。但应该是6.3?即使 0.0 也不起作用。我究竟做错了什么?

4

6 回答 6

30

你需要它是一个浮点值才能工作。

double thevalue = 6.33;

这是一个演示。现在,它只是一个字符串,所以它会按原样插入。如果您需要解析它,请使用double.Parseor double.TryParse。(或float,或decimal。)

于 2012-08-27T16:48:30.683 回答
29

这是另一种根据需要格式化浮点数的方法:

string.Format("{0:F1}",6.33);
于 2012-08-27T17:29:00.243 回答
21

以下是一些需要考虑的不同示例:

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

于 2012-08-27T17:12:20.033 回答
14

ToString() 简化了工作。 double.Parse(theValue).ToString("N1")

于 2012-08-27T17:02:36.430 回答
1

选项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;
于 2012-08-27T16:50:55.883 回答
1

请这个:

String.Format("{0:0.0}", 123.4567); // return 123.5
于 2016-04-27T00:50:39.040 回答