Fehler in der FAQ
-
Hey Sidewinder
hier: http://www.c-plusplus.net/forum/viewtopic.php?t=39327
unsigned short int getDigit (long int num, unsigned short int digit) { return (num / pow(10,digit)) % 10; }
Der Aufruf von pow() ist Mehrdeutig und ich glaube auch, dass du weißt warum und nur nicht darauf geachtet hast
-
*push*
-
Zudem ist diese Funktion ineffektiv. pow ist
1. teuer
2. ungenau
Beides durch die Nutzung von floating point operations.Besser und effektiver wäre so etwas:
unsigned short int getDigit (long int num, unsigned short int digit) { while (num && digit--) num /= 10; return num % 10; }
Just my 2 cents! :xmas1: