2010-05-15 4 views

Répondre

8
string doubleToStr(double d) 
{ 
    stringstream ss; 
    ss << fixed << setprecision(400) << d; 
    return ss.str(); 

} 
2

Il semble que vous pouvez faire quelque chose comme:

printf("%.999f", x); 

Avec 1e-200, vous obtenez:

0,00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999982100262399082759596054411789289747099615053598246562490947497936721972131756201804197021570455030299293624922494821832383011632557906373552085962098408476913455489082859886355453662043973282024133154067230851267975426859535195138290147135230492006 4954568524027925980061836920599672604679919133131325752127067572867114833324440862265532435494287445976335078589119159474703853650968495892746707328834776970293406573920527864300486054644847962408236227259004848949563992732691986020654439926147460937500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Vous pouvez choisir de faire un traitement ultérieur de la production (par exemple, en éliminant plus de chiffres de précision que vous avez besoin).

2

J'ai besoin d'un petit graphique ici, vous allez vous faire mal. Convertir un nombre à virgule flottante en sa représentation décimale ne devrait être fait que pour aider un humain à le regarder. Après quelques jours de chiffres en forme de globe oculaire, cet humain va vous traquer et battre la merde vivante hors de vous.

0

Depuis C++ 11, il suffit d'utiliser to_string(double val) de <string>.

Questions connexes