J'essaie de convertir une valeur double en une exponentielle, mais je reçois une erreur d'arrondi.C double à exponentielle ronde erreur
int main (unsigned int argc, char **argv)
{
float a=293.17;
float b=293.10;
double ULfreq = 2089.555000;
double upfreq = 0.0;
long int t = 0;
long int u = 0;
upfreq = ULfreq * 1000000.0;
printf(" %f, upfreq:%22.16E\n", upfreq, upfreq);
return 0;
}
Quand je lance ce code sur un ordinateur 32 bits je reçois le résultat suivant:
2089555000.000000, upfreq:2.0895549999999998E+09
Courir sur un processeur 64 bits donne la bonne réponse.
Est-il possible de faire fonctionner cette conversion sur un serveur 32 bits et comment?
Merci de ne pas avoir fait le code copier & pasteable ... – glglgl
@glglgl J'ai fait une modification sur son post, il devrait être visible pour vous maintenant ou très bientôt. – Jite
super, merci beaucoup! – glglgl