0

全部,

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

这是代码:

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

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

我究竟做错了什么?

谢谢你。

[编辑]

正如建议的那样,我尝试执行以下操作:

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

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

任何想法?

[/编辑]

4

5 回答 5

2

您正在将值读取为字符串。您想将其转换为双倍以使此类格式正常工作。

string valueText = ini.Read( "Form", "value" );
var value  = double.Parse(valueText);
于 2012-08-21T20:15:01.960 回答
2

应该是这样的

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

这是Double [C#] 的更多详细信息字符串格式

于 2012-08-21T20:18:08.673 回答
1

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

下面的代码示例将起作用。

decimal value = 1.5m;
this.txtEditAcquisitionUpb.Text = String.Format( "{0:F5}", value );
于 2012-08-21T20:18:12.463 回答
1

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

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

如果有可能这将在具有变量 的机器上运行,CultureInfo那么请考虑使用包含.ParseToStringIFormatProvider

于 2012-08-21T22:30:07.303 回答
0

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

也试试:

double.Parse(value);
于 2012-08-21T20:16:09.937 回答