C# 只有一位小数的字符串格式?

C# 只有一位小数的字符串格式?,c#,.net,C#,.net,我只想显示小数点后一位。我尝试了以下方法: 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,或decima

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

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

选项1(设为字符串):

选项2(转换):

选项3(激发正则表达式):

ToString()简化了工作。
double.Parse(theValue).ToString(“N1”)
以下是一些需要考虑的不同示例:

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

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

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

String.Format("{0:0.0}", 123.4567); // return 123.5

如果
将是
“6.333”
,你甚至可以使用“Match(..).Value”正则表达式和字符串选项不会舍入到最接近的数字,它们将被截断。它工作得很好,但会将数字像
0.155
舍入到
0.2
。不过这是个小问题!它工作得很好,但它会将数字四舍五入,比如0.155到0.2。不过这是个小问题!关键是为了共享信息和帮助人们,我发现这很有帮助。这是否也适用于$字符串?
double l_value = 6.4567;
string result = string.Format("{0:0.00}", l_value);
Console.WriteLine(result);
string.Format("{0:F1}",6.33);
String.Format("{0:0.0}", 123.4567); // return 123.5