我有一个很长的双倍,我想使用cout打印它的所有数字(没有科学记数法的完整数字)。
这是代码: -
long double d = 3456489465498484.14159265358979;
cout << "Num: " << d << endl;
输出: -
Num: 3.45649e+015
虽然我希望输出
Num: 3456489465498484.14159265358979;
我尝试过精确度并设定精度,但似乎没有这种方式。请帮忙
答案 0 :(得分:0)
浮点值的内部表示通常是二进制的,因此初始化它需要从十进制转换为二进制并显示它需要从二进制转换为十进制。大多数小数部分没有精确的二进制表示,并且大多数二进制分数没有精确的十进制表示,因此通常要求“全部”数字没有意义。你在途中丢失了一些数字,并且在出路的时候会丢失一些。决定你想要多少,并设置匹配的精度。