我在c ++中遇到问题,我有这个代码进行划分:
long a = 33732193487;
int b = 1000000;
double c = (double)a/(double)b;
好吧,我想将完整的结果存储在变量c中,我的意思是:
c = 33732.193487;
以后,例如,使用此值来生成总和或替代。但我只能用一位小数来存储结果。
有没有选项用c ++存储6位小数?
提前谢谢!对不起,如果我的问题太明显了。
答案 0 :(得分:1)
让我猜一下(完整的程序会更好):当你将值写入标准输出时,你会看到六位小数:
std::cout << c << '\n';
这六位小数是输出的默认 ;它们与c
的值的精确度无关,后者由c
的类型决定。对于double
,您通常有大约十五位数字。要在输出语句中查看这些数字,请使用std::setprecision
:
std::cout << std::setprecision(15) << c << '\n';
但要注意:您可以在setprecision
的调用中使用大于15的值,并且流插入器将很乐意生成更多数字,并且具有无意义的值。