nextafter() y nexttoward() en C/C++

¿Cómo resolvería los siguientes problemas en C/C++?

  • ¿Cuál es el número de punto flotante positivo representable más pequeño en C/C++?
  • ¿Cuál es el número de punto flotante negativo representable más grande en C/C++?
  • Dado un número de punto flotante positivo x, ¿encontrar el mayor valor de punto flotante representable menor que x?

nextafter(x, y) y nexttoward(xy)
En C y C++, tanto nextafter(x, y) como nexttoward(xy) son funciones similares definidas en los archivos de encabezado math.h o cmath. Ambos devuelven el siguiente valor representable después de x en la dirección de y. nexttoward() tiene un segundo parámetro y más preciso.

El siguiente programa demuestra el concepto:

// C program to demonstrate use of nextafter() and nexttoward()
#include <stdio.h>
#include <math.h>
int main ()
{
    // using nextafter
    printf ("Smallest positive floating point number : %e\n",
            nextafter(0.0, 1.0));
    printf ("Largest negative floating point number :%e\n",
            nextafter(0.0, -1.0));
    printf ("Largest positive floating point number smaller than 0.5 : %e\n",
            nextafter(0.5, 0.0));
  
    // using nexttoward
    printf ("Smallest positive floating point number : %e\n",
            nexttoward(0.0, 1.0));
    printf ("Largest negative floating point number : %e\n",
            nexttoward(0.0, -1.0));
    printf ("Largest positive floating point number smaller than 0.5 : %e\n",
            nexttoward(0.5, 0.0));
    return (0);
}

Producción:

nextafter first value greater than zero: 4.940656e-324
nextafter first value less than zero: -4.940656e-324
nexttoward first value greater than zero: 4.940656e-324
nexttoward first valnextafter first value greater than zero: 4.940656e-324
nextafter first value less than zero: -4.940656e-324
nexttoward first value greater than zero: 4.940656e-324
nexttoward first value less than zero: -4.940656e-324 ue less than zero: -4.940656e-324 

Este artículo es una contribución de Aditya Chatterjee. Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *