双号格式化

时间:2012-08-21 20:11:26

标签: c# formatting double

ALL,

我试图从初始化文件中读取1.5的值,并在Windows窗体的文本控件中将其显示为1.50000。

以下是代码:

string value = ini.Read( "Form", "value" );
this.textcontrol.Text = String.Format( "{0:F5}", value );

“value”变量确实包含1.5,但文本控件也显示1.5而不是1.50000。

我做错了什么?

谢谢。

[编辑]

正如我所建议的那样,我尝试做以下事情:

var doublevar = double.Parse( value, CultureInfo.InvariantCulture );
this.textcontrol.Text = doublevar.ToString( "{0:F5}" );

但我在控件中看到的是{1:F5}。

有什么想法吗?

[/编辑]

5 个答案:

答案 0 :(得分:2)

您正在将值读取为字符串。您希望将其转换为双倍,以使此格式化工作。

string valueText = ini.Read( "Form", "value" );
var value  = double.Parse(valueText);

答案 1 :(得分:2)

应该是这样的

string value = ini.Read( "Form", "value" );
this.textcontrol.Text = String.Format("{0:0.00000}",  double.Parse(value));

以下是更多详情String Format for Double [C#]

答案 2 :(得分:1)

您应该将值分配给十进制变量。

下面的代码示例可行。

decimal value = 1.5m;
this.txtEditAcquisitionUpb.Text = String.Format( "{0:F5}", value );

答案 3 :(得分:1)

结合其他答案以使其正确:

string valueString = ini.Read("Form", "value");
double valueDouble = double.Parse(valueString);
this.textcontrol.Text = valueDouble.ToString("F5");

如果有可能在不同CultureInfo的机器上运行,请考虑使用包含Parse的{​​{1}}和ToString的重载。

答案 4 :(得分:0)

你可以看看。 http://msdn.microsoft.com/en-us/library/s8s7t687.aspx

还可以尝试:

double.Parse(value);