C/C++ 中的 nextafter() 和 nexttoward()
在这里我们将看到C或C++中nextafter()和nextforward()函数的效果。这些函数存在于math.h或cmath库中。
如果函数类似于nextafter(a,b)和nextforward(a,b)。这些函数用于在b的方向上找到a之后的下一个可表示值。的nextforward()具有更精确的第二参数b。
示例
#include输出结果#include main () { //nextafter函数() 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)); //使用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