Dzielenie przez zero i ślepota.
Ostatnio zmodyfikowano 2013-11-04 20:25
ridic14 Temat założony przez niniejszego użytkownika |
Dzielenie przez zero i ślepota. » 2013-11-04 19:52:48 Program się wywala... a debugger mówi że dzielę przez 0... Tylko gdzie ? angle =(( rand() % 6283 ) + 1 ) / 1000; std::cout << angle << std::endl; particle->vel.x =( rand() %( int )( cos( angle ) * 1000 ) ) / 1000; particle->vel.y =( rand() %( int )( sin( angle ) * 1000 ) ) / 1000;
jak wiadomo w rand() trzeba podać liczbę całkowitą, a jakoż potrzebuję liczby z przecinkiem, tak sobie radzę... jak widać coś nie tak... |
|
pekfos |
» 2013-11-04 19:55:55 % to reszta z dzielenia. |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2013-11-04 20:08:39 zmieniłem kod: angle =(( rand() % 6283 ) + 1 ) / 1000.f; std::cout << angle << std::endl; particle->vel.x =( rand() %( int )( cos( angle ) * 1000 ) ) / 1000.f; particle->vel.y =( rand() %( int )( sin( angle ) * 1000 ) ) / 1000.f;
Teraz mam już liczby zmiennoprzecinkowe... Ale dalej mam dzielenie przez 0... Tu ma coś do rzeczy ten '%' to przez niego to? |
|
akwes |
» 2013-11-04 20:20:01 Dzielenie czy dzielenie z resztą jest bez różnicy bo dzielnik nie może być zerem. Jeżeli rzutujesz na int wartości mniejsze od 1 to są zaokrąglane do zera. |
|
pekfos |
» 2013-11-04 20:20:35 % to reszta z dzielenia. Jak myślisz, jaka może być reszta z dzielenia przez zero (poza tym, że UB)? |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2013-11-04 20:25:49 Dobra już wiem o co chodzi. Dzięki :D
|
|
« 1 » |