在fortran中,我是否可以始终依靠0.d0 == 0来生成.true。 ? 即:
real(8) :: x
integer :: i
x = 0.d0
i = 0
write(*,*) x == i
我尝试过一段简单的代码,结果是.true。但我能不能相信这一点吗?
这样做的原因是我想避免acos(x)
的问题,如果x< -1
答案 0 :(得分:3)
i
将在应用关系相等性测试==
之前升级为浮点类型。
浮点零将比较true
与其自身,并且还与负的有符号零进行比较。
“我能永远信任吗?”是的,你可以。