4

Problema

Estoy haciendo una calculadora que calcule sin importar el tamaño del número que se pase. Así que uso gmp, para números con decimales o divisiones creó un big double con mpf_t, pero cuando quiero mostrarlo con mpf_get_str me da solo un entero, y no los decimales.

El código

#include <stdio.h>
#include <stdlib.h>
#include <gmp.h>

int main(void){
  mpf_t ldPI;
  mp_exp_t mp_exponent;
  char* sOut;
  mpf_init (ldPI);
  mpf_set_si(ldPI,3.14156);

  puts("Vemos el flotante...");
  sOut=mpf_get_str(NULL,&mp_exponent,10,30,ldPI);
  puts(sOut);
  puts("End...");

  free(sOut);
  mpf_clear(ldPI);
  return 0;
}

Salida:

Vemos el flotante...
3
End...

Salida esperada:

Vemos el flotante...
3.14156
End...
2
  • 3
    mpf_set_si es para enteros, deberías usar mpf_set_d
    – Mady
    Commented el 23 jun. a las 16:21
  • 1
    @Mady Graciass. Me da pena decir que pase una hora debugeando esto. xD
    – DABL03
    Commented el 23 jun. a las 19:34

0

Examina otras preguntas con la etiqueta o formula tu propia pregunta.