我和朋友的代码有一个完全奇怪的问题。这是代码:
double Wampr = Convert.ToDouble(textBoxWampr.Text); //39437
double Vmax = Convert.ToDouble(textBoxVmax.Text); // 295
double Nrdte = Convert.ToDouble(textBoxNrdte.Text); //5
double Nstatic = Convert.ToDouble(textBoxNstatic.Text); //2
double CEF = Convert.ToDouble(textBoxCEF.Text); //3.1
double Fdiff = Convert.ToDouble(textBoxFdiff.Text); //1.8
double Fobs = Convert.ToDouble(textBoxFobs.Text); //1
double output = 0.001244 * Math.Pow(Wampr, 1.160) * Math.Pow(Vmax, 1.371) * Math.Pow(Nrdte - Nstatic, 1.281)* CEF * Fdiff * Fobs;
textbox1.Text = output.ToString();
它应该计算,结果是14791812.0609327
不幸的是,在他的lappy中,结果变为1479181206.09327
看到区别?小数位。
我已经在一些笔记本电脑上测试了它,结果很好(正确的答案,第一个),但没有在他的笔记本电脑中,结果是第二个(1479181206.09327
)
我尝试运行一些测试以在他的Visual Studio中运行,例如:
double output = 14791812.060932;
textbox1.Text = output.ToString();
它运行顺利,没有任何错误/奇怪的结果。
所以我认为这是因为Math.Pow。你怎么看待这个问题?
提前致谢。
我使用应该在代码末尾的文本框内填充的值更新代码。
〜我试着将值直接放到等式中,结果是正确的。所以它不是Math.Pow问题。