VIŠE O  FLOAT I  DOUBLE VARIJABLAMA

C ispisuje i  float i double varijable na šest decimalnih mjesta. To se NE odnosi na preciznost (točnost) na koju je broj zapravo pohranjen, već samo na to koliko decimalnih mjesta  printf() koristi za prikaz tog tipa varijabli.

Slijedeći  program ilustrira kako se različiti tipovi podataka deklariraju i ispisuju,

        #include <stdio.h>

        main()
        {
                int     sum = 100;
                char    letter = 'Z';
                float   set1 = 23.567;
                double  num2 = 11e+23;

                printf("Integer varijabla je %d\n", sum);
                printf("Znak je %c\n", letter);
                printf("Float varijabla je %f\n", set1);
                printf("Double varijabla je %e\n", num2);
        }





        Ispis programa

        Integer varijabla je 100

        Znak je Z

        Float varijabla je 23.567000

        Double varijabla je 11.000000e23
Da bismo promijenili broj decimalnih mjesta na koja se ispisuju  float ili double varijable, mijenjamo %f ili %e tako da uvrstimo i preciznost, npr,
        printf("Float varijabla je %.2f\n", set1 );
U ovom slučaju, uporaba  %.2f ograničava ispis na dva decimalna mjesta, i sad on izgleda ovako
     Ispis programa

        Integer varijabla je 100
        Znak je Z
        Float varijabla je 23.56
        Double varijabla je 11.000000e23

ZABILJEŠKA O KONVERZIJI TIPOVA PODATAKA
Pogledajmo slijedeći program,

        #include <stdio.h>

        main()
        {
                int  value1 = 12, value2 = 5;
                float answer = 0;

                answer = value1 / value2;
                printf("Vrijednost %d podijeljena s %d iznosi %f\n",value1,value2,answer );

        }





   Ispis programa

        Vrijednost 12 podijeljena s 5 iznosi 2.000000
Iako izgleda da je deklaracija u primjeru točna, nije uvijek 100% pouzdana. Zapazite  kako answer ne sadrži točan decimalni dio (tj. sadrži sve nule).

Da osiguramo pojavljivanje točnog rezultata, tip podataka value1 i value2 trebao bi se konvertirati na float tip prije pridruživanja float varijabli answer. Pokazat ćemo kako  to možemo učiniti,

        answer = (float)value1 / (float)value2;