解决了一个错误,我找到了一些有趣的发现.
这个程序的结果
static void Main(string[] args) { int i4 = 4; Console.WriteLine("int i4 = 4;"); Console.WriteLine("i4 % 1 = {0}",i4 % 1); double d4 = 4.0; Console.WriteLine("double d4 = 4.0;"); Console.WriteLine("d4 % 1 = {0}",d4 % 1); Console.WriteLine("-----------------------------------------------------------"); int i64 = 64; double dCubeRootOf64 = Math.Pow(i64,1.0 / 3.0); Console.WriteLine("int i64 = 64;"); Console.WriteLine("double dCubeRootOf64 = Math.Pow(i64,1.0 / 3.0) = {0}",dCubeRootOf64); Console.WriteLine("dCubeRootOf64 = {0}",dCubeRootOf64); Console.WriteLine("dCubeRootOf64 % 1 = {0} ?????????????? Why 1. ??????????",dCubeRootOf64 % 1); Console.ReadLine(); }
是
int i4 = 4; i4 % 1 = 0 double d4 = 4.0; d4 % 1 = 0 ----------------------------------------------------------- int i64 = 64; double dCubeRootOf64 = Math.Pow(i64,1.0 / 3.0) = 4 dCubeRootOf64 = 4 dCubeRootOf64 % 1 = 1 ?????????????? Why 1. ??????????
int 4%1 = 0 – 正确
双4.0%1 = 0 – 正确
但是错误在于:
Math.Pow(64,1.0 / 3.0)%1 = 1
来自64的立方根是4.为什么在这种情况下4%1 = 1?
解决方法
原文地址:https://www.jb51.cc/c/119651.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。