Format de chaîne de caractères en notation scientifique

J'ai une chaîne qui ressemble à ceci:

"0.4794255386042030002732879352156"

qui est environ le péché(0.5). Je voudrais formater la chaîne à regarder beaucoup plus agréable

"4.794255386042e-1"

Comment puis-je y parvenir? Rappelez-vous que je fais affaire avec des chaînes de caractères et non des nombres (float, double). Aussi j'ai besoin de tour à conserver un nombre aussi précis que possible, je ne peux pas juste de les tronquer. Si j'ai besoin de convertir un type de données différent, je préfère un long double en raison d'un double régulière n'a pas assez de précision. J'aimerais au moins 12 chiffres après la virgule avant l'arrondi. Peut-être il ya un moyen simple sprintf() de conversion que je pouvais faire.

OriginalL'auteur John Scipione | 2009-12-29