至少对我来说,这是有史以来最奇怪的 Visual Studio 2010 行为。我正在开发 MVC3 项目,我从另一个项目(也包括 VS2010,MVC1,如果重要的话)复制了一行代码,如下所示:
target_height = height * 1.1
当我将其粘贴到 MVC3 项目中时,它会扩展为
target_height = height * 1.1000000000000001
现在,如果我输入 1.2,那很好,什么也没有发生,但如果我输入 1.12,它就会扩展到 1.1200000000000001。
target_height 和 height 都是整数。为什么一个 Visual Studio 显示 1.1,而另一个 Visual Studio 将其扩展为 1.1000000000000001?
到底是怎么回事???
我认为自动完成变得疯狂并开始将浮点常量修复为“允许”值。正如所写http://accessmvp.com/Strive4Peace/VBA/VBA_L1_02_Crystal.pdf http://accessmvp.com/Strive4Peace/VBA/VBA_L1_02_Crystal.pdf,VB 自动完成实际上试图只提供“专门适用于该数据类型的内容”。 int * double 不会被截断为 int * int (自动转换总是仅在需要时发生),您看到的是 1.1 或 1.12 的双精度表示(epsilon = 1.11e-16),这是可以理解的。
我认为发生这种情况时,仍然需要一些进一步的检查或验证来了解确切的情况,但由于我没有使用 VB.NET 或 MVCx,这不是我愿意做的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)