J'ai une exception de virgule flottante, et je ne sais pas pourquoi.pourquoi Exception de virgule flottante?
le code est le suivant:
void calcola_fitness(){
vector<double> fitness;
int n=nodes.size();
int e=edges.size();
int dim=feasibility.size();
int feas=(feasibility[dim-1])*100;
int narchi=numarchicoll[dim-1]/e;
int numero_nodi=freePathNode.size()/n;
double dist_start_goal=node_dist(0,1);
int i,f,t;
double pathlenght=0;
int siize=freePathNode.size();
for(i=0;i!=siize-1; i++){
f=freePathNode[i].getIndex();
i++;
t=freePathNode[i].getIndex();
i--;
pathlenght=pathlenght+node_dist(f,t);
}
double pathlenghtnorm=pathlenght/10*dist_start_goal;
double fit=((double)numero_nodi+pathlenghtnorm+(double)narchi)*((double)feas);
fitness.push_back(fit);
}
Quelqu'un pourrait me aider? Quel est le problème? Je pourrais résoudre ce problème? merci beaucoup
Sur quelle ligne obtenez-vous l'erreur? Quelle est la valeur de 'dist_start_goal'? –
Il compile, mais en exécution quand je demande cette méthode, j'ai cette erreur. la méthode node_dist est la suivante: double node_dist (int de, int à) { renvoyer des noeuds [from] .distance (noeuds [à]); } – livio8495
Vous ne pouvez pas obtenir un SIGFPE pour renvoyer un nombre. – bmargulies