【发布时间】:2014-10-27 03:03:36
【问题描述】:
当我在 Matlab 中输入一个大于最大 double 的数字时,大约是 1.79769e+308,例如 10^309,它返回 Inf。出于教育目的,我想获得像 C 编译器那样返回溢出错误消息的溢出异常,而不是 Inf。我的问题是:
Inf是溢出异常吗?如果是,为什么 C 编译器不返回
Inf?如果不是,我可以在 Matlab 中得到溢出异常吗?
Inf和溢出异常有什么区别吗?
我也不想在 Matlab 中检查 Inf,然后用 error() 函数抛出异常。
【问题讨论】:
-
@lakesh 你是什么意思?
-
@lakesh 我不想计算。
1e^309也不正确。我想你的意思是10^309=1.0e309。 -
为什么要这样做?检查
Inf然后抛出异常有什么问题? -
这是一个有效且有趣的问题。那些拒绝投票或投票结束的人应该阅读how the floating-point spec deals with infinity 并溢出。它们通常混合在一起,就像在 Matlab 中一样,但两者并不相同。
-
我也不明白反对票。这是一个完全有效的问题,而且我真的很好奇!
标签: c matlab exception floating-point floating-point-exceptions