在 Fortran 中,我能否始终指望 0.d0 == 0 产生 .true。 ? 即:
real(8) :: x
integer :: i
x = 0.d0
i = 0
write(*,*) x == i
我尝试了一段简单的代码,结果是 .true。但我能一直相信这个吗?
这样做的原因是我想避免 acos(x)
if x < -1 的问题。
最佳答案
i
将被提升为浮点类型 before 应用关系相等性测试 ==
。
浮点零会将 true
与自身进行比较,也会与带符号的负零进行比较。
“我可以一直相信这个吗?”是的,你可以。
关于Fortran:0.d0 总是 == 0 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35434097/