我是这个网站和C#的新人,
我在浮点上得到了关于点和逗号的问题.
dpi.Text = "1188";
winSens.Text = "1";
sens.Text = "1.25";
m_yaw.Text = "0.022";
double sensCM =(360 * 2.54) / ((Double.Parse(dpi.Text) * Double.Parse(winSens.Text) * Double.Parse(sens.Text) * Double.Parse(m_yaw.Text)));
sensCM360.Text = sensCM.ToString();
Run Code Online (Sandbox Code Playgroud)
所以计算就像;
(360 * 2.54) / (1188 * 1 * 1.25 * 0.022)=
=914.4 / 32.67
=27.9889
Run Code Online (Sandbox Code Playgroud)
但结果是,而不是27.9889,我获得了0,000279889807162534.
它是有效的,我逐个添加"替换",所以他们就像 Double.Parse(dpi.Text.Replace(".", ","))
但我不明白的是为什么它与''一起工作,我记得,我们使用'.' 在计算中,我在代码中输入了2.54.所以有人能解释一下吗?
我也得到了0.00027988980716253442
.这是因为,
德国的小数分隔符(以及其他国家).它在美国(和其他国家).
.
如果要强制点作为小数分隔符 ,可以使用CultureInfo.InvariantCulture
类似于en-US
:
double sensVal = double.Parse(sens.Text, CultureInfo.InvariantCulture);
// ...
Run Code Online (Sandbox Code Playgroud)
这导致1.25
而不是125.0
.