visualc&x2B+;双对C++;双重的 我已经将一些代码从C++移植到Visual C++(这是我第一次在Visual C++环境中编码)。代码做了很多计算,我可以看到原始代码和移植的代码有不同的结果

visualc&x2B+;双对C++;双重的 我已经将一些代码从C++移植到Visual C++(这是我第一次在Visual C++环境中编码)。代码做了很多计算,我可以看到原始代码和移植的代码有不同的结果,c++,visual-c++,types,double,C++,Visual C++,Types,Double,几乎我所有的变量都是数据类型double 也许这是个愚蠢的问题,但是Visual C++双和C++双有什么区别吗?有距离差吗?我似乎找不到任何解释它的数据类型的VisualC++文档。 第一次看没有区别,但是不同的编译器可以不同地优化表达式。 项目属性中的代码生成选项具有浮点模型设置。它可以精确、严格或快速。乍一看没有区别,但不同的编译器可能会以不同的方式优化表达式 项目属性中的代码生成选项具有浮点模型设置。它可以是精确的、严格的或快速的。看看这个: VS有一个/fp选项()来指定浮点精度(类似

几乎我所有的变量都是数据类型double


也许这是个愚蠢的问题,但是Visual C++双和C++双有什么区别吗?有距离差吗?我似乎找不到任何解释它的数据类型的VisualC++文档。

第一次看没有区别,但是不同的编译器可以不同地优化表达式。


项目属性中的代码生成选项具有浮点模型设置。它可以精确、严格或快速。

乍一看没有区别,但不同的编译器可能会以不同的方式优化表达式

项目属性中的代码生成选项具有浮点模型设置。它可以是精确的、严格的或快速的。

看看这个:

VS有一个/fp选项()来指定浮点精度(类似于CUDA的fastmath)。其中一些还可以防止内在因素;如果你有转换,可能会有很大的不同

最后,这些设置的行为和默认值依赖于编译器()

请看以下内容:

VS有一个/fp选项()来指定浮点精度(类似于CUDA的fastmath)。其中一些还可以防止内在因素;如果你有转换,可能会有很大的不同


<>最后,这些设置的行为和默认值是编译器依赖的()

VisualC++商店使用格式的双倍。对于“C++double”没有具体的定义,但是如果您发现它没有使用IEEE 754,我会感到惊讶,因为它是大多数CPU的本机编码


所以,没有区别

> Visual C++使用格式存储双倍。对于“C++double”没有具体的定义,但是如果您发现它没有使用IEEE 754,我会感到惊讶,因为它是大多数CPU的本机编码


所以,没有区别

据我所知,Visual Studio在32位模式下使用x87,在64位模式下至少使用SSE2。VisualStudio的默认编译模式是32位模式,即使在64位操作系统上也是如此,而GCC的默认编译模式是在64位操作系统上使用64位模式。所以,也许这只是一个32位或64位模式的问题。尝试在Visual Studio中以64位模式编译代码。即使在MSVC 2010之后的Express版本中,您也可以这样做


x87和SSE是不同的硬件。x87使用80位进行内部计算(但只存储64位),而SSE只有64位。据我所知,Wikipedia很好地解释了为什么x87选择了80位,Visual Studio在32位模式下使用x87,在64位模式下至少使用SSE2。VisualStudio的默认编译模式是32位模式,即使在64位操作系统上也是如此,而GCC的默认编译模式是在64位操作系统上使用64位模式。所以,也许这只是一个32位或64位模式的问题。尝试在Visual Studio中以64位模式编译代码。即使在MSVC 2010之后的Express版本中,您也可以这样做


x87和SSE是不同的硬件。x87使用80位进行内部计算(但只存储64位),而SSE只有64位。维基百科很好地解释了为什么x87选择了80位

您使用的是哪个版本的Visual Studio?对于编写的代码,编译器是什么?C++双应该是什么?还有,你看到了优化构建的不同吗?编译器选项会影响浮点运算。它们是否完全错误,或者与VRRRY轻微的不同值不一样。“我已经把一些代码从C++移植到Visual C++中”,这并不意味着什么。C++是一种编程语言,Visual C++是用这种语言编程的环境。对于编写的代码,编译器是什么?C++双应该是什么?还有,你看到了优化构建的不同吗?编译器选项会影响浮点运算。它们是否完全错误,或者与VRRRY轻微的不同值不一样。“我已经把一些代码从C++移植到Visual C++中”,这并不意味着什么。C++是一种编程语言,Visual C++是一种用这种语言编程的环境。我将使用一些建议,看看它是否有帮助。Thx的链接,它解释了一些事情。我会使用一些建议,看看是否有帮助。应该没有区别:)应该没有区别:)谢谢你的回答!它设置为精确。当我将其更改为Strict时,会出现以下错误:D8016:“/clr”和“/fp:Strict”命令行选项不兼容。谢谢您的回答!它设置为精确。当我将其更改为Strict时,会出现以下错误:D8016:“/clr”和“/fp:Strict”命令行选项不兼容。