J'ai récemment rencontré un problème qui pourrait être facilement résolu en utilisant le module de la division, mais l'entrée était un float:
Étant donné une fonction qui se répète (ex:
sin
), et la fonction de l'ordinateur que ne peut la calculer lorsque la plage est l'intérieur d'un segment de gamme (ex: -pi à pi), faire une fonction qui permet de gérer n'importe quelle entrée.
Le "évident" la solution est quelque chose comme:
#include <cmath>
float sin(float x){
return limited_sin((x + M_PI) % (2 *M_PI) - M_PI);
}
Pourquoi ne pas ce travail? J'obtiens cette erreur:
error: invalid operands of types double and double to binary operator %
Il est intéressant de noter, c'est en Python:
def sin(x):
return limited_sin((x + math.pi) % (2 * math.pi) - math.pi)