Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Float liefert nach dem Komma nur nullen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
16.01.2007, 23:08 Uhr
~XHatebreedX
Gast



C++:
int i,feld[5];
float d=3.5;
    d=5/3;
printf("%.2f",d);    
C/C++ Code:
int i,feld[5];
float d=3.5;
d=5/3;
printf("%.2f",d);    
C/C++ Code:
int i,feld[5];
float d=3.5;
    d=5/3;
printf("%.2f",d);    


wieso macht der mir keine Kommazahlen daraus. Das ganze soll darauf hinauslaufend as ich 5 int Variablen einlese und dadurch den Durchschnitt berechne indem ich alle 5 felder addieser und die durch 5 teile.
Wäre nett wenn ejmand ehflen könnte...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.01.2007, 23:41 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


er interpretiert 5/3 als "ganzzahlen" und damit ist das ergebnis der division dann auch wieder eine "ganzzahl" bei der er die kommastellen wegschneidet...

mit z.B. d=5/3.0 kannst du ihn zwingen genauer zu rechnen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.01.2007, 23:59 Uhr
~XHatebreedX
Gast


THX
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.01.2007, 13:28 Uhr
~XHatebreedX
Gast



C++:
float erg=3.555;
erg=1.0*(kmax/kakt);


und wieso klappt das hierbei nicht`?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.01.2007, 13:32 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


was ist kmax bzw kakt? sind das ints? dann macht er ja erst den bruch und dann das mal.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.01.2007, 13:37 Uhr
~XHatebreedX
Gast



C++:
int fmax(int kmax,int kakt)
{
    float erg=3.555;
    erg=1.0*(kmax/kakt);
    return erg;

}


Ja das sind Ints. Die sollen aber als ganze Zahlen eingelesen werden. Its das nicht irgendwie so möglich?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.01.2007, 13:40 Uhr
~XHatebreedX
Gast



C++:
#include<stdio.h>
int fmax(int kmax,int kakt)
{
    float erg=3.555;
    erg=1.0*(kmax/kakt);
    return erg;

}
int fmin(int kmin,int kakt)
{
    float erg=3.555;
        erg=1.0*(kmin/kakt);
        printf("der minimale Kurs durch den aktuellen ergibt %f",erg);
    return erg;

}
main()
{
    int kakt,kmax,kmin;
    float emax,emin;
    printf("Bitte geben sie den aktuellen Kurs ein:");
    scanf("%i",&kakt);
    printf("Bitte geben sie den maximalen Kurs ein:");
    scanf("%i",&kmax);
    printf("Bitte geben sie den minimalen Kurs ein:");
    scanf("%i",&kmin);
    if(kmin<kakt && kakt<kmax)
    {
    emax=fmax(kmax,kakt);
    printf("der maximale Kurs durch den aktuellen Kurs ergibt %f",emax);
    emin=fmax(kmin,kakt);
    printf("der minimalste Kurs durch den aktuellen Kurs ergibt %f",emin);
    }
    else
    {
        printf("Die Bedingungen bezueglich maximal und minmal gehen nicht auf");
        main();
    }
    return 0;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.01.2007, 13:47 Uhr
~XHatebreedX
Gast



C++:
#include<stdio.h>
float fmax(float kmax,float kakt)
{
    float erg=3.555;
    erg=(kmax/kakt);
    return erg;

}
float fmin(float kmin,float kakt)
{
    float erg=3.555;
    erg=(kmin/kakt);
    return erg;

}
main()
{
    float kakt,kmax,kmin;
    float emax,emin;
    printf("Bitte geben sie den aktuellen Kurs ein:");
    scanf("%f",&kakt);
    printf("Bitte geben sie den maximalen Kurs ein:");
    scanf("%f",&kmax);
    printf("Bitte geben sie den minimalen Kurs ein:");
    scanf("%f",&kmin);
    if(kmin<kakt && kakt<kmax)
    {
    emax=fmax(kmax,kakt);
    printf("der maximale Kurs durch den aktuellen Kurs ergibt %f",emax);
    emin=fmax(kmin,kakt);
    printf("der minimalste Kurs durch den aktuellen Kurs ergibt %f",emin);
    }
    else
    {
        printf("Die Bedingungen bezueglich maximal und minmal gehen nicht auf");
        main();
    }
    return 0;
}


So läuft das. Ist das denn emphelenswert?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
17.01.2007, 13:54 Uhr
0xdeadbeef
Gott
(Operator)


Ich würd die Funktionen nicht grad fmin und fmax nennen, die gibts nämlich in math.h schon (allerdings mit double statt float, und was anderes machen die auch). Aber ansonsten kann man das so tun.

...oder du könntest

C++:
(double) x / y


schreiben, wenn x und y ints sind und du ne Fließkommadivision willst.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
17.01.2007, 17:10 Uhr
KFC Embryo
Ein Huhn


mh....
ich will jetzt ja nicht besser wisserich klingen (schon zu spät)

Aber wenn ein cast dann so:


C++:

static_cast<double> (x / y)




oder? *Vorsichtig*
Da die andere Methode veraltet ist, würd ich jetzt sagen.

mfg
KFC Embryo
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: