Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

返回在特定方向上的下一個可表示值 (函數nextafter)

概要

#include <boost/math/special_functions/next.hpp>

namespace boost{ namespace math{
 
template <class FPT>
FPT nextafter(FPT val, FPT direction);
 
}} // namespaces
nextafter函數說明

這是包含在C99標準中的nextafter函數的實現 (它同樣也是C99中'nexttoward'函數的實現,區別在於僅有一個long double的方向,如果要求的話,通常能夠適合它自己的位置)。

[Note] 注意

C99中的函數必須使用後綴 f 和 l 來區分 float 和 long double 版本的函數. 而C++ 使用函數模板來代替。

返回在y方向上的x的下一個可表示的值。如果x == y ,那麼就返回x. 如果x 是無限的,那麼返回定義域錯誤.如果在y 方向上沒有這個值,那麼就返回返回同錯誤.

例子 - nextafter

這兩個表示使用任意一個方向上的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


PrevUpHomeNext