将文本框值传递给另一个文本框

时间:2012-06-18 10:43:24

标签: c# textbox globalization

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

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);

但我一直遇到同样的问题

提前致谢

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

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

您在文本框中使用.。我假设您当前的UI文化使用,。因此,.后面没有数字,导致25.0而不是2.5

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

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

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