如何设置数字格式以显示C ++中的所有十进制数字?

时间:2017-12-27 16:59:33

标签: c++ variables numbers decimal division

我在c ++中遇到问题,我有这个代码进行划分:

long a = 33732193487;

int b = 1000000;

double c = (double)a/(double)b;

好吧,我想将完整的结果存储在变量c中,我的意思是:

c = 33732.193487;

以后,例如,使用此值来生成总和或替代。但我只能用一位小数来存储结果。

有没有选项用c ++存储6位小数?

提前谢谢!对不起,如果我的问题太明显了。

1 个答案:

答案 0 :(得分:1)

让我猜一下(完整的程序会更好):当你将值写入标准输出时,你会看到六位小数:

std::cout << c << '\n';

这六位小数是输出的默认 ;它们与c的精确度无关,后者由c类型决定。对于double,您通常有大约十五位数字。要在输出语句中查看这些数字,请使用std::setprecision

std::cout << std::setprecision(15) << c << '\n';

但要注意:您可以在setprecision的调用中使用大于15的值,并且流插入器将很乐意生成更多数字,并且具有无意义的值。