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?