如何设置数字格式以C++;? 我有一个C++问题,我有这个代码做除法: long a = 33732193487; int b = 1000000; double c = (double)a/(double)b;
我想把完整的结果存储在变量c中,我的意思是:如何设置数字格式以C++;? 我有一个C++问题,我有这个代码做除法: long a = 33732193487; int b = 1000000; double c = (double)a/(double)b;,c++,variables,numbers,decimal,division,C++,Variables,Numbers,Decimal,Division,我想把完整的结果存储在变量c中,我的意思是: c = 33732.193487; 例如,对于以后的操作,使用此值生成sum或substrac。但是我只能用一个小数来存储结果 < C++ > 有6个小数点的存储选项吗? 提前谢谢你!如果我的问题太明显,很抱歉。让我猜猜(完整的程序会更好):当您将值写入标准输出时,您将看到六位小数: std::cout << c << '\n'; 但是要注意:在调用setprecision时,可以使用大于15的值,流插入器将很高兴地生成更
c = 33732.193487;
例如,对于以后的操作,使用此值生成sum或substrac。但是我只能用一个小数来存储结果
< C++ > 有6个小数点的存储选项吗?
提前谢谢你!如果我的问题太明显,很抱歉。让我猜猜(完整的程序会更好):当您将值写入标准输出时,您将看到六位小数:
std::cout << c << '\n';
但是要注意:在调用
setprecision
时,可以使用大于15的值,流插入器将很高兴地生成更多的数字,这些数字都是无意义的。双值不会固定“小数”的数量。是否要存储6个小数?还是精确解中的数量?您可以编写一个Rational
类来存储分子和分母。你到底想做什么?当你意识到你甚至不能用typedouble
准确地存储数字0.1
时,事情会变得非常奇怪。您应该更详细地研究浮点类型理论。@这取决于您的实现,我的有sizeof(long)==8,因此33732193487
很容易适应。如果long
不够大,无法存储您的数字,您可能会收到编译器警告。2种方法,1)存储双精度,并输出6位小数。2) 将结果乘以1000000存储为整数,然后除以1000000输出。
std::cout << std::setprecision(15) << c << '\n';