我为一个名为“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);
但我一直遇到同样的问题
提前致谢
答案 0 :(得分:2)
问题是您不使用系统UI文化使用的格式。实际上,您正在使用GUI上的InvariantCulture
。
您在文本框中使用.
。我假设您当前的UI文化使用,
。因此,.
后面没有数字,导致25.0
而不是2.5
。
此行将使用InvariantCulture而不是系统UI文化转换回来:
double diff = Double.Parse(diff_Box.text, CultureInfo.InvariantCulture);
然而,更好的方法是使用私有Double _diff
并将其转换为在表单上显示所需的文化。其次,您应该期望用户使用UI文化进行数据输入。