数学函数错误处理及相关概念解析
1. 数学函数错误条件处理
1.1 范围错误
当函数的有限数学结果由于数值过大而无法用指定类型的对象表示时,就会发生“范围错误”。每个函数的描述中会列出所需的范围错误,实现可以定义额外的范围错误,但这些错误必须与函数的数学定义一致,并且是溢出或下溢的结果。
- 结果溢出 :如果数学结果的数值有限但非常大,以至于在指定类型的对象中表示该结果时会产生异常舍入误差,就会发生浮点结果溢出。若浮点结果溢出且采用默认舍入方式,函数将根据返回类型返回宏
HUGE_VAL、HUGE_VALF或HUGE_VALL的值,其符号与函数的正确值相同。若(math_errhandling & MATH_ERRNO)非零,errno将被设置为[ERANGE];若(math_errhandling & MATH_ERREXCEPT)非零,将引发“溢出”浮点异常。 - 结果下溢 :如果数学结果的数值非常小,以至于在指定类型的对象中表示该结果时会产生异常舍入误差,就会发生结果下溢。若结果下溢,函数将返回一个实现定义的值,其数值不大于指定类型中最小的规范化正数。若
(math_errhandling & MATH_ERRNO)非零,errno是否设置为 <
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



