C/C++ 中的 nextafter() 和 nexttoward()


本篇我們來看看 C 或 C++ 中 nextafter() 和 nextforward() 函式的作用。這些函式存在於 math.h 或 cmath 庫中。

如果這些函式類似於 nextafter(a, b) 和 nextforward(a, b)。這些函式用於查詢按 b 方向 a 之後下一個可表示的值。nextforward() 具有更精確的第二個引數 b。

示例

#include <stdio.h>
#include <math.h>
main () {
   //The nextafter function()
   printf ("Smallest representable number after 0 towards 1 : %e\n", nextafter(0.0, 1.0));
   printf ("Largest representable number before -1 towards 0 :%e\n", nextafter(0.0, -1.0));
   printf ("Largest +ve representable number after 0.8 : %e\n", nextafter(0.8, 0.0));
   // using nexttoward
   printf("\n");
   printf ("Smallest representable number after 0 towards 1 : %e\n", nexttoward(0.0, 1.0));
   printf ("Largest representable number before -1 towards 0 : %e\n", nexttoward(0.0, -1.0));
   printf ("Largest +ve representable number after 0.8 : %e\n", nexttoward(0.8, 0.0));
}

輸出

Smallest representable number after 0 towards 1 : 4.940656e-324
Largest representable number before -1 towards 0 :-4.940656e-324
Largest +ve representable number after 0.8 : 8.000000e-001
Smallest representable number after 0 towards 1 : 4.940656e-324
Largest representable number before -1 towards 0 : -4.940656e-324
Largest +ve representable number after 0.8 : 8.000000e-001

更新時間:2019 年 7 月 30 日

204 次瀏覽

開啟您的職業生涯

完成課程並獲得認證

開始
廣告