Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是",;reals“;在Fortran语言中,与“相同”;“浮动”;在C++;? 我已经把一些代码从Fortran翻译成C++,并且两个代码都给了我相同的结果,对于给定的输入,除了数据集中的两个数据点之外。p>_C++_Floating Point_Fortran - Fatal编程技术网 ,c++,floating-point,fortran,C++,Floating Point,Fortran" /> ,c++,floating-point,fortran,C++,Floating Point,Fortran" />

是",;reals“;在Fortran语言中,与“相同”;“浮动”;在C++;? 我已经把一些代码从Fortran翻译成C++,并且两个代码都给了我相同的结果,对于给定的输入,除了数据集中的两个数据点之外。p>

是",;reals“;在Fortran语言中,与“相同”;“浮动”;在C++;? 我已经把一些代码从Fortran翻译成C++,并且两个代码都给了我相同的结果,对于给定的输入,除了数据集中的两个数据点之外。p>,c++,floating-point,fortran,C++,Floating Point,Fortran,我的代码计算点之间的距离,并利用这些信息做一些有趣的事情。发现C++代码中的两个点彼此之间在一个距离上,在FORTRAN中的距离不同。代码很长,所以我不会发布它 这让我觉得很奇怪,因为这两个“奇怪点”正好在我的代码中间,而其他106个点都是相同的。 我已经读过Goldberg的论文,它让我相信在我的32位系统上实型和浮点型应该是相同的。在大多数C/C++实现中,float对应于real*4,而double对应于real*8 此StackOverflow答案(和相关注释)描述Fortran 90

我的代码计算点之间的距离,并利用这些信息做一些有趣的事情。发现C++代码中的两个点彼此之间在一个距离上,在FORTRAN中的距离不同。代码很长,所以我不会发布它

这让我觉得很奇怪,因为这两个“奇怪点”正好在我的代码中间,而其他106个点都是相同的。


我已经读过Goldberg的论文,它让我相信在我的32位系统上实型和浮点型应该是相同的。

在大多数C/C++实现中,
float
对应于
real*4
,而
double
对应于
real*8


此StackOverflow答案(和相关注释)描述Fortran 90的类型:


由于计算顺序不同,浮点计算可能会出现差异。浮点算法对求值顺序非常敏感,特别是在涉及宽动态范围的值之间的加减运算时

此外,C/C++数学和数学库在许多令人惊讶的地方默认为
双精度
,除非您明确要求
浮点
。例如,常数
1.0
是双精度常数。考虑下面的代码片段:

float x;
x = 1.0 + 2.0;
x = x + 3.0;
表达式
1.0+2.0
以双精度计算,结果返回到单精度。同样,第二条语句
x+3.0
x
升级为
double
,执行算术运算,然后返回到float

要获取单精度常数并使算术保持单精度,需要添加后缀
f
,如下所示:

float x;
x = 1.0f + 2.0f;
x = x + 3.0f;
现在,这个算法将以单精度完成


对于数学库调用,单精度变量通常还具有
f
后缀,例如
cosf
sqrtf
<代码> >实际< /C> >可以是C++中的代码>浮点< /C> >(或是4)或<代码>双< /代码>(类型8)。
它还可能取决于编译器选项(即数学扩展、优化、平方根实现等)

你的Fortran类型指南已经过时了。星号符号从来都不是标准符号,20年前已经被实物符号取代。