Avatar billede spectual Nybegynder
22. august 2002 - 20:11 Der er 1 kommentar og
1 løsning

float/int blandingsproblem

Nedenstående program virker ikke efter hensigten:
-------------------------------------------------

float points[50][50][3];

int main(int argc, char* argv[])
{
    float waverateX = 40/50;
    float waverateZ = 30/50;
    float t;
    // initialisering af vand variabler
    for (int wy = 0; wy < 50; wy++) {
        for (int wx = 0; wx < 50; wx++) {
            points [wx] [wy] [0] = -20.0f + (wx*waverateX);
            points [wx] [wy] [1] = -1.0f;
            points [wx] [wy] [2] = -20.0f + (wy*waverateZ);
            printf ("%f, %f, %f\n", points [wx] [wy] [0], points [wx] [wy] [1], points [wx] [wy] [2] );
        };
    };

    return 0;
}

Problemet er, at uanset hvad wx er, så bliver resultatet af (wx*waverateX) 0, selvom den når wx er 50 skulle give 40.

Jeg har oplevet problemet før, men har aldrig fundet en sikker løsning.

Kan nogen hjælpe?
Avatar billede spectual Nybegynder
22. august 2002 - 20:12 #1
hvis det skulle have nogen betydning, så er compileren visual c++ 6.0
Avatar billede spectual Nybegynder
22. august 2002 - 20:57 #2
float waverateX = 40.0f/50.0f;
float waverateZ = 30.0f/50.0f;

løser problemet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester