C'est toi qui ne lis pas les réponses qu'on te donne. Ce n'est pas parce que ton code est syntaxiquement valable qu'il est correct sur le fond :
Ta fonction est de type int, mais renvoie e qui est déclaré comme float. Moralité, à chaque retour de ta fonction, c'est-à-dire à chaque itération de ton sigma, tu ne conserves que la partie entière de ton sous-total !