我无法让我的程序为双打输出正确的精度。说我有一个
class Program
{
static void Main(string[] args)
{
using (MPI.Environment environment = new MPI.Environment(ref args))
{
Intracommunicator comm = Communicator.world;
if (comm.Rank == 0)
{
int [] numbers = new int[comm.Size];
for (int k = 0; k < numbers.Length; k++)
numbers[k] = k * k;
int r = comm.Scatter(numbers);
Console.WriteLine("Received {0} at {1}", r, comm.Rank);
}
else
{
int r = comm.Scatter<int>(0);
Console.WriteLine("Received {0} at {1}", r, comm.Rank);
}
}
}
}
运行一些算法后,我得到double d;
作为输出。我希望将d
变量的精度设置为小数点后的4个精度点。我应该能够这样做:
d
问题在于,如果我cout << setprecision(4) << d;
是整数,则不会打印小数。
例如,如果d
,则我的程序将打印d == 120
。我想让它打印120
。如何让我的程序始终打印4位小数?
答案 0 :(得分:3)
您需要使用固定精度输出固定数量的小数点。您应该告诉stdout流(cout
)您要使用固定精度。
std::cout << std::fixed << std::setprecision(4) << d;