trunc() , truncf() , truncl() en lenguaje C

Las tres funciones se utilizan para eliminar dígitos después del punto decimal y devolver el número decimal modificado.

trunc() : trunca un valor doble después del punto decimal y da como resultado la parte entera. El valor devuelto y los argumentos son del tipo doble.

Sintaxis:
doble trunc(doble x);

Parámetros:
x : Toma un valor doble como entrada y luego trunca los valores después del punto decimal.

Valor devuelto:
Devuelve un valor doble cuyos valores después del punto decimal son solo 0.

Ejemplos:

Input : 3.5
Output : 3.0

Input : -3.8
Output : -3.0
// C program to demonstrate 
// trunc() function
#include <stdio.h>
  
// library containing trunc function
#include <math.h>     
  
// Driver function
int main()
{
    // using trunc function which return
    // Truncated value of the input 
    double x1 = 2.0, x2 = 3.9, x3 = -3.3, x4 = 4.9;
    printf(" Truncated value is %lf \n", trunc(x1) );
    printf(" Truncated value is %lf \n", trunc(x2) );
  
    // For negative values
    printf(" Truncated value is %lf \n", trunc(x3) );
    printf(" Truncated value is %lf \n", trunc(x4) ); 
    return 0;
}
Producción:

Truncated value is 2.000000 
 Truncated value is 3.000000 
 Truncated value is -3.000000 
 Truncated value is 4.000000

truncf() : Funciona igual que trunc con la diferencia de que es para flotar en lugar de doble. Toma un valor flotante, elimina los dígitos después del punto decimal y devuelve un valor flotante modificado.

Sintaxis:
float truncf(float x);

Parámetros:
x : Toma un valor de punto flotante como entrada y luego trunca los valores después del punto decimal.

Valor devuelto:
Devuelve un flotante cuyos valores después del punto decimal son solo 0.

Ejemplos:

Input : 4.5
Output : 4.0

Input : -2.8
Output : -2.0
// C program to demonstrate truncf() function
#include <stdio.h>
#include <math.h>     
  
// Driver function
int main()
{
    float x1 = 2.0, x2 = 3.9, x3 = -3.3, x4 = 4.9;
  
    // using truncf function which return
    // Truncated value of the input 
    printf(" Truncated value is %f \n", truncf(x1) );
    printf(" Truncated value is %f \n", truncf(x2) );
  
    // For negative values
    printf(" Truncated value is %f \n", truncf(x3) );
    printf(" Truncated value is %f \n", truncf(x4) ); 
    return 0;
}
Producción:

Truncated value is 2.000000 
 Truncated value is 3.000000 
 Truncated value is -3.000000 
 Truncated value is 4.000000

truncl() : Esto funciona de manera similar para long double y funcionalidad similar a trunc() y truncf()

Sintaxis:
long double truncl (long double x);

Parámetros:
x : Toma un valor doble largo como entrada y luego trunca los valores después del punto decimal.

Valor devuelto:
Devuelve un valor decimal cuyos valores después del punto decimal es 0 únicamente.

Ejemplos:

Input : 4351.5
Output : 4351.0

Input : -2008.8
Output : -2008.0

En caso de valores positivos:

// C program to demonstrate truncl() function
#include <stdio.h>
#include <math.h>     
  
// Driver function
int main()
{
    long double x1 = 2.0, x2 = 3.9, x3 = -3.3, x4 = 4.9;
  
    // using truncf function which return
    // Truncated value of the input 
    printf(" Truncated value is %Lf \n", truncl(x1) );
    printf(" Truncated value is %Lf \n", truncl(x2) );
  
    // For negative values
    printf(" Truncated value is %Lf \n", truncl(x3) );
    printf(" Truncated value is %Lf \n", truncl(x4) ); 
    return 0;
}
Producción:

Truncated value is 2.000000 
 Truncated value is 3.000000 
 Truncated value is -3.000000 
 Truncated value is 4.000000

Podemos usar la función trunc() siempre que necesitemos calcular la parte entera de un tipo de datos doble. La ventaja de esta función es que cualquiera que sea el valor decimal, la parte entera permanece igual. En las funciones ceil o floor o round el valor entero cambia pero en la función trunc no.

Publicación traducida automáticamente

Artículo escrito por agrawalmohak99 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 *