为什么我使用Double.Parse错误?

0 c# double replace comma

我是这个网站和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.所以有人能解释一下吗?

Tim*_*ter 5

我也得到了0.00027988980716253442.这是因为,德国的小数分隔符(以及其他国家).它在美国(和其他国家)..

如果要强制点作为小数分隔符 ,可以使用CultureInfo.InvariantCulture类似于en-US:

double sensVal = double.Parse(sens.Text, CultureInfo.InvariantCulture); 
// ...
Run Code Online (Sandbox Code Playgroud)

这导致1.25而不是125.0.