nextafter() และ nexttoward() ใน math.h หรือ cmath ใช้หาค่า representable ถัดไปหลัง a ในทิศทางของ b nexttoward() มีพารามิเตอร์ที่สองแม่นยำกว่า
ตัวอย่าง
#include <stdio.h> #include <math.h> main() { 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)); 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 (same for nexttoward)