/* File: floatio.c */
/* Time-stamp: "2001-03-19 02:21:22 calvanes" */
/* Scopo: specificatori di formato per tipi float, double, long double */

#include <stdio.h>

int main(void)
{
  float x = 123.45;
  double y;
  long double z = 1.234e1000L;

  printf("%Lg %g\n", z, z);


  /* output formattato e non */
  printf("|%10.3f| |%-10.3f| |%f|\n", x, x, x);
  printf("|%10.3e| |%-10.3e| |%e|\n", x, x, x);
  printf("|%10.4g| |%-10.4g| |%g|\n", x, x, x);
  printf("|%10.2g| |%-10.2g| |%g|\n", x, x, x);
  printf("|%10d| |%-10d| |%d|\n", (int)x, (int)x, (int)x);

  /* input */
  printf("Immetti un float:\n");
  scanf("%g", &x);
  printf("%g\n",x);

  printf("Immetti un double:\n");
  scanf("%lg", &y);
  printf("%g\n",y);

  printf("Immetti un long double:\n");
  scanf("%Lg", &z);
  printf("%Lg\n", z);

  return 0;
}


/* output

|   123.450| |123.450   | |123.449997|
| 1.234e+02| |1.234e+02 | |1.234500e+02|
|     123.4| |123.4     | |123.45|
|   1.2e+02| |1.2e+02   | |123.45|
|       123| |123       | |123|
...

 */