Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置数字格式以C++;? 我有一个C++问题,我有这个代码做除法: long a = 33732193487; int b = 1000000; double c = (double)a/(double)b;_C++_Variables_Numbers_Decimal_Division - Fatal编程技术网

如何设置数字格式以C++;? 我有一个C++问题,我有这个代码做除法: long a = 33732193487; int b = 1000000; double c = (double)a/(double)b;

如何设置数字格式以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中,我的意思是:

c = 33732.193487;
例如,对于以后的操作,使用此值生成sum或substrac。但是我只能用一个小数来存储结果

< C++ >

有6个小数点的存储选项吗? 提前谢谢你!如果我的问题太明显,很抱歉。

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

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

但是要注意:在调用
setprecision
时,可以使用大于15的值,流插入器将很高兴地生成更多的数字,这些数字都是无意义的。

值不会固定“小数”的数量。是否要存储6个小数?还是精确解中的数量?您可以编写一个
Rational
类来存储分子和分母。你到底想做什么?当你意识到你甚至不能用type
double
准确地存储数字
0.1
时,事情会变得非常奇怪。您应该更详细地研究浮点类型理论。@这取决于您的实现,我的有
sizeof(long)==8,因此
33732193487
很容易适应。如果
long
不够大,无法存储您的数字,您可能会收到编译器警告。2种方法,1)存储双精度,并输出6位小数。2) 将结果乘以1000000存储为整数,然后除以1000000输出。
std::cout << std::setprecision(15) << c << '\n';