Fortran:是0.d0总是== 0?

时间:2016-02-16 13:36:30

标签: fortran double rounding precision

在fortran中,我是否可以始终依靠0.d0 == 0来生成.true。 ? 即:

real(8) :: x
integer :: i

x = 0.d0
i = 0
write(*,*) x == i

我尝试过一段简单的代码,结果是.true。但我能不能相信这一点吗? 这样做的原因是我想避免acos(x)的问题,如果x< -1

1 个答案:

答案 0 :(得分:3)

i将在应用关系相等性测试==之前升级为浮点类型

浮点零将比较true与其自身,并且还与负的有符号零进行比较。

“我能永远信任吗?”是的,你可以。