如何在C ++中将double转换为字符串(没有科学记数法)?

时间:2010-05-15 08:08:59

标签: c++ string double

如何在C ++中没有科学记数法的情况下将double转换为浮点字符串表示形式。 “小”样品(有效数字可以是任何尺寸,例如1.5E200或1e-200):

0.0000000000000000000000000000000000000000000000000000000023897356978234562

谢谢。

4 个答案:

答案 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>

相关问题