![]() |
Home | Libraries | People | FAQ | More |
#include <boost/math/special_functions/next.hpp>
namespace boost{ namespace math{ template <class FPT> FPT nextafter(FPT val, FPT direction); }} // namespaces
這是包含在C99標準中的nextafter函數的實現 (它同樣也是C99中'nexttoward'函數的實現,區別在於僅有一個long double的方向,如果要求的話,通常能夠適合它自己的位置)。
![]() |
注意 |
|---|---|
C99中的函數必須使用後綴 f 和 l 來區分 float 和 long double 版本的函數. 而C++ 使用函數模板來代替。 |
返回在y方向上的x的下一個可表示的值。如果x
== y
,那麼就返回x. 如果x 是無限的,那麼返回定義域錯誤.如果在y 方向上沒有這個值,那麼就返回返回同錯誤.
這兩個表示使用任意一個方向上的32-bits浮點單位元素:
1.F最接近(精確的)表示是 1.00000000 nextafter(1.F, 999) 是 1.00000012 nextafter(1/f, -999) 是 0.99999994 0.1F的最接近的(不精確的)表示是 0.100000001 nextafter(0.1F, 10) 是 0.100000009 nextafter(0.1F, 10) 是 0.099999994