【发布时间】:2015-07-15 13:18:51
【问题描述】:
最近我注意到在我当前的 vb.net 项目中,有时(取决于值),如果我输入一个双精度值,编辑器会更改我的输入,例如:
当我输入...
Dim x As Double = 0.6
...在按 Enter 提交该行后,它将变为:
Dim x As Double = 0.59999999999999998
如果我直接撤消该操作,则它会恢复为我输入的原始值。该行中的任何未来编辑都将再次产生不希望的结果。
我知道0.6 内部计算为0.59999999999999998,因此它对正在运行的应用程序没有影响,但这很烦人,奇怪的是:这并不总是发生,如果我创建了一个新项目,那里也没有发生。
所以我的问题是:如何防止 VS 这样做?为什么会发生呢?为什么不总是这样(以前在我当前的项目中或在新项目中)?
我在 Intel CPU 上运行 64 位 Windows 8.1 - 如果这与它有关的话。
有人有什么想法吗?
编辑:我正在使用 Visual Studio 2013 Professional(12.0.31101.00 更新 4),是的,该项目已从几个早期的 VS 版本迁移。没有安装相关的加载项或扩展。禁用“漂亮列表”确实可以防止问题发生,但当然该选项的其他非常有用的方面也会被禁用:o(
EDIT2:在“漂亮列表”的提示之后,我找到了以下 SO 文章,但也没有找到解决方案:Visual Studio VB pretty listing settings
【问题讨论】:
-
什么版本的 Visual Studio?任何重要的加载项或扩展?
-
我从来没有见过这样的行为,可能是因为加载项?您可以尝试附加一个“R”来表示一个 Double 文字:
Dim x As Double = 0.6R -
或者更好,如果可能的话,使用十进制类型...
-
Visual Studio 自己不 这样做。它必须是某种扩展。
-
在 Visual Studio 中运行的代码更改了数学协处理器控制字。要么改变计算精度,要么改变舍入模式,可能是后者。是的,当您在编辑代码时发生这种情况会非常痛苦。找到恶人并不容易。除了加载项,我知道 Microsoft ACE 数据提供程序does this。例如,您可以在服务器资源管理器窗口中使用它。
标签: vb.net visual-studio code-editor