0

我正在尝试执行以下操作:

stringstream convert1(Model_str.substr(2, 12));
cout << (Model_str.substr(2, 12)) << endl; //output = 0.999999
convert1>>vertex1[VertexCounter];
cout << vertex1[VertexCounter] << endl; //output = 0

将其放入我的数组时,是否有理由不精确到小数点后 6 位?

4

1 回答 1

2

当您int从带有 的流中提取 时>>,只要有可以被视为 的一部分的字符,它就会读取int。整数不允许小数部分,因此int值中没有小数点。它0从流中读取 ,将其存储在您的vertex1数组元素中(假设vertex1是 的数组int),并将剩余的字符留在输入缓冲区中以供以后的读取操作使用。

如果要从流中读取浮点字符串,则至少需要读入支持浮点值的类型,例如floator double。你是否得到你期望的精确值是另一回事。您选择的目标类型可能无法代表您想要的确切值。

于 2012-06-22T18:08:59.707 回答