我想只显示一位小数。我尝试了以下方法:
string thevalue = "6.33";
thevalue = string.Format("{0:0.#}", thevalue);
结果为:6.33。但应该是6.3吗?甚至0.0也不行。我做错了什么?
以下是另一种按需格式化浮点数的方法:
string.Format("{0:F1}",6.33);
你需要将它转换成浮点数才能让它工作。
double thevalue = 6.33;
这里有一个演示。 目前它只是一个字符串,所以会按原样插入。如果你需要解析它,请使用 double.Parse
或 double.TryParse
。(或者使用 float
或 decimal
。)
以下是几个需要考虑的不同示例:
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")
Please this:
String.Format("{0:0.0}", 123.4567); // return 123.5
选项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;
thevalue
是 "6.333"
呢? - Tim Schmelter
0.155
这样的数字四舍五入为0.2
。不过这只是一个小问题! - Anirudha