double类型的c++变量总是将其值更改为-9,25596e+061

C++ Variables of type double always change their values to -9,25596e+061

本文关键字:25596e+061 类型 c++ 变量 double      更新时间:2023-10-16

我有一个由直线组成的二维图形。

图形边缘的坐标来自double类型。坐标的值存储在一个名为Dot的对象中。

与一行相关的数据(是一行升序或降序,"a * X + b == Y"中的"a"answers"b"的值等)存储在一个名为line的对象中。Line类也有两个Dot对象,用于每行的两端。Line类也有2个函数/方法和一个构造函数。构造函数没有参数。第一个函数/方法没有参数,第二个函数/方法有参数。这两个函数/方法都是为了在必要时自动更改所有数据而创建的。

在启动程序后,我插入图形的边数和边的坐标。之后,程序必须在屏幕上写出每一行的所有内容。无论我插入什么坐标,第一个点的坐标都是X = -9,25596e+061和Y = -9,25596e+061。但其他点是我最初插入的坐标。

有一条线,我添加到一个向量的数量与图形的边的数量相同。之后,我开始改变图形边缘的坐标值(通过在运行的程序中插入值)。第三个动作是调用"创建"行的函数/方法(它计算关于行的其余数据)。程序的第四步是将每一行的数据写在屏幕上。

我一直在搜索算法和代码中的问题。我什么也没找到。

我使用Visual c++ 2010 Express。我也在使用iostream和vector库。

那么为什么第一个边的X和Y坐标将它们的值更改为-9,25596e+061?

OK,问题似乎在代码中。我还没有初始化。必须交换两个变量的位置来解决这个问题。多亏了Hans Passant和Baltram,我知道在哪里搜索这个问题:从任何类型的数组调用元素。

是啊,做这种事的时候一定要小心。

使用程序员计算器,输入0xcccccc…然后把它转换成十进制(以10为底的数)就会得到类似的结果。这总是意味着内存中有未初始化的值。在visual studio的内存窗口或调试器中,您可以右键单击监视窗口,并在弹出菜单中选择显示内存十六进制值的选项。有时,当我调试崩溃时,我这样做是为了检查原始浮点数据。