1

我为一个名为“diff_Box”的文本框提供了一个默认值“2.5”,然后为了检查另一个目的,我将这个值粘贴到另一个名为“textbox5”的文本框中。但在 textbox5 中显示为 25。我知道这是一个非常常见的问题,但我无法以某种方式解决它。到目前为止我已经尝试过了;

double diff;

diff = Double.parse(diff_Box.Text);
diff = Convert.ToDouble(diff_Box.Text);



textBox5.Text = Convert.ToString(diff);
textBox5.Text = diff.ToString("F2");
textBox5.Text = ToString.parse(diff);

但我一直遇到同样的问题

提前致谢

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

2

问题是您没有使用系统 UI 文化使用的格式。您实际上是InvariantCulture在您的 GUI 上使用 。

.在文本框中使用 a 。我假设您当前的 UI 文化使用,. 因此,它在 之后看不到任何数字,.并导致25.0而不是2.5

此行将使用 InvariantCulture 而不是系统 UI 文化进行转换:

double diff = Double.Parse(diff_Box.text, CultureInfo.InvariantCulture);

然而,更好的方法是使用私有Double _diff并将其转换为所需的文化以在表单上显示。其次,您应该期望用户使用 UI 文化进行数据输入。

于 2012-06-18T11:25:54.657 回答