为什么我的“双重”值不是按照我预期的方式打印出来的?

时间:2011-03-03 14:15:44

标签: c++ double output-formatting

我可以使用变量类型“double”表示以下坐标三元组吗?

512685.93 5403444.22 305.63, 
512685.91 5403445.72 305.55,
512685.90 5403447.12 305.54, ... 

这些值对应于x,y和amp; z在我的输入文件中。在我的程序完成一些过程后,我得到了输出文件,其中包含以下值:

512668 5.40345e+006 321.39, 
512667 5.40345e+006 321.57, 
512666 5.40345e+006 321.89, 
512666 5.40344e+006 321.32, 
512665 5.40344e+006 321.64, ...

我使用double x, y, z来表示这些值。为什么不打印的格式与第一个例子更相似?

2 个答案:

答案 0 :(得分:1)

你能吗?嗯,是的,如果你可以忍受所有浮点计算中固有的不精确性。

当然,您的问题中没有足够的细节来确定您的问题是由于舍入,还是由于程序中的某些错误,或者即使首先出现问题!

答案 1 :(得分:0)

看看如何打印值,可能值仍然很好,但输出机制限制了精度。