如何在C ++中没有科学记数法的情况下将double转换为浮点字符串表示形式。 “小”样品(有效数字可以是任何尺寸,例如1.5E200或1e-200):
0.0000000000000000000000000000000000000000000000000000000023897356978234562
谢谢。
答案 0 :(得分:9)
string doubleToStr(double d)
{
stringstream ss;
ss << fixed << setprecision(400) << d;
return ss.str();
}
答案 1 :(得分:2)
看起来你可以做类似的事情:
printf("%.999f", x);
使用1e-200
,您将获得:
0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999982100262399082759596054411789289747099615053598246562490947497936721972131756201804197021570455030299293624922494821832383011632557906373552085962098408476913455489082859886355453662043973282024133154067230851267975426859535195138290147135230492006495456852402792598006183692059967260467991913313132575212706757286711483332444086226553243549428744597633507858911915947470385365096849589274670732883477697029340657392052786430048605464484796240823622725900484894956399273269198602065443992614746093750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000
您可以选择对输出进行进一步处理(例如消除比您需要的精度更多的数字)。
答案 2 :(得分:2)
我需要在这里得到一些图片,你会受伤。将浮点数转换为十进制表示只应该永远来帮助人们查看它。经过几天这样的数字格式化后,这个人类会打猎你并击败你的生活垃圾。
答案 3 :(得分:0)
由于C ++ 11只使用to_string(double val)
中的<string>
。