Я установил пакет libgmp3-dev в Ubuntu 18.04 и немного изучаю, как его использовать.Я написал следующую программу
#include <stdio.h>
#include <gmp.h>
int main()
{
mpf_t x;
mpf_t y;
mpf_init(x);
mpf_init(y);
mpf_set_str(x, "9.95697589e-06", 10);
mpf_set_str(y, "+9.95697589e-06", 10);
printf("x: ");
mpf_out_str(stdout, 10, 12, x);
printf("\n");
printf("y: ");
mpf_out_str(stdout, 10, 12, y);
printf("\n");
mpf_clear(x);
mpf_clear(y);
return 0;
}
И вывод выглядит как
x: 0.995697589e-5
y: 0.e0
Мне кажется странным, что вызов типа sscanf("+9.0e-5", "%lf", &my_double);
прекрасно обрабатывает такой формат, но mpf_set_str не't.
Почему' y 'отображается как 0?