You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fortran 2003及以后标准中整数除以零的行为是否未定义?

Fortran 2003及以后标准下整数除以零的行为疑问

示例代码

integer::i
i=0
print*,0/i
print*,1/i
end

不同编译器的运行结果

  • 新版本编译器(gfortran 13.1.0 和 ifx 2024.1.2)生成的可执行文件输出两个零
  • 旧版本编译器(gfortran 7.4.0)生成的可执行文件仅输出一个零,随后因SIGFPE: Floating-point exception - erroneous arithmetic operation中断执行,尽管这并非浮点运算

标准相关说明

根据Fortran解释文档(10.1.5.2.2 整数除法):“[整数除法]的结果是最接近数学商且介于零和数学商之间(含两端)的整数。”
但文档中未找到整数除以零的处理说明。

核心问题

依据Fortran 2003及以后的标准,执行该代码的正确结果是什么?或者该行为属于未定义?

(曾有关于旧版本Fortran的帖子提出类似问题,但未解答作者疑问,本文聚焦Fortran 2003及以后标准。)

内容的提问来源于stack exchange,提问作者V T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:22:10