Quote:
Originariamente inviato da ||ElChE||88
Ma che azzo fa?
Se assegno EvalTree(pTree->left, szError) a dblLeft ed EvalTree(pTree->right, szError) a dblRight per ogni operazione(PLUS,MINUS,MULT,ecc) e poi uso le due variabili, funziona tutto perfettamente.
Se invece uso direttamente EvalTree(pTree->left, szError) ed EvalTree(pTree->right, szError) il risultato č sballato.
|
prova a mettere il suffisso L:
Codice:
case DIV:
dblLeft = EvalTree(pTree->left, szError);
dblRight = EvalTree(pTree->right, szError);
if ( dblRight == 0.0L )
{
sprintf(szError, "Errore: divisione per zero!");
return 0.0;
}
else
{
return dblLeft / dblRight;
}