c# – 嵌套的Math.Pow(…)表现得很奇怪
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 嵌套的Math.Pow(…)表现得很奇怪,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1001字,纯文字阅读大概需要2分钟。
内容图文
![c# – 嵌套的Math.Pow(…)表现得很奇怪](/upload/InfoBanner/zyjiaocheng/815/c046fecc5823463db75785b3e7b6410d.jpg)
目前我正在将一些旧的C代码重写为C#.当运行一些测试它没有按预期工作时,我开始调试,并且遇到了我似乎无法弄清楚的下面的内容.
因为我在课堂上做了很多数学并经常使用Math.Pow函数,所以我为它创建了一个快捷方法:
public double pow(double d, double p)
{
return Math.Pow(d,p);
}
然后我有一个如下代码行,它使用这种方法很多次:
double y = pow((pow(d12, 2) + pow(d13, 2) + pow(23, 2)), 2) - (2.0 * (pow(d12, 4) + pow(d13, 4) + pow(d23, 4)));
这条线没有给出预期的结果,所以我开始把它分成小块,因为它应该被计算…例如,减号之前的值应该等于q5:
double q1 = pow(d12, 2);
double q2 = pow(d13, 2);
double q3 = pow(d23, 2);
double q4 = q1 + q2 + q3;
double q5 = pow(q4, 2);
在这些线之后q5是8775553070736.0
然后我尝试将长线分成两部分,其中第一部分应该等于上面的5行,只写成一行:
double q12 = pow((pow(d12, 2) + pow(d13, 2) + pow(23, 2)), 2);
我期望评估与q5相同,但事实并非如此. q12而是评估为4479508755225.0
代码有什么问题?
解决方法:
为什么你期望:
pow(d23, 2)
和…一样
pow(23, 2)
?
PROTIP:在VS中,始终将数字的默认颜色(黑色)更改为其他内容(我喜欢红色).
内容总结
以上是互联网集市为您收集整理的c# – 嵌套的Math.Pow(…)表现得很奇怪全部内容,希望文章能够帮你解决c# – 嵌套的Math.Pow(…)表现得很奇怪所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。