字符串格式只有一个小数位?

时间:2012-08-27 16:47:12

标签: c# .net

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

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

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

6 个答案:

答案 0 :(得分:23)

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

string.Format("{0:F1}",6.33);

答案 1 :(得分:21)

你需要它才能成为浮点值。

double thevalue = 6.33;

Here's a demo.现在,它只是一个字符串,因此它将按原样插入。如果您需要解析它,请使用double.Parsedouble.TryParse。 (或floatdecimal。)

答案 2 :(得分:11)

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

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

答案 3 :(得分:5)

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

答案 4 :(得分: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;

答案 5 :(得分:1)

请这个: String.Format(“{0:0.0}”,123.4567); //返回123.5