
void print_number(int x) {
  int temp;
  if (integerp(x) == Mtrue)
    write_int(get_integer_val(x));
  else {
    if (Mvecref(x, 1) == 1)
      putchar('-');
    printf("0.");
    unpack_mantissa(CELLADDRMASK(x) + 3, bigfloat_mantissa, PRECISION);
    for (temp = PRECISION - 1; temp >= 0; temp--)
      putchar(bigfloat_pool[bigfloat_mantissa + temp] + '0');
    putchar('e');
    write_int(Mvecref(x, 2));
  }
  return;
}
