m_stPara.StopInsAlt = atoi((Ini.GetValue("固定点的选择", "固定点高度")).c_str()); double类型数据的小数点部分被截断
时间: 2024-11-03 14:15:13 浏览: 18
equivalent_int_error_condition.rar_If...
`m_stPara.StopInsAlt = atoi((Ini.GetValue("固定点的选择", "固定点高度")).c_str());` 这行代码是从配置文件(Ini)获取名为"固定点的高度"的值,将其转换为整型(integer),然后赋给 `m_stPara.StopInsAlt` 变量。`atoi()` 函数用于将字符串转换成整数。
但是,如果原始的 Ini 文件中的"固定点的高度"值是一个包含小数点的双精度浮点数(double),比如 "10.5",使用 `atoi()` 函数会发生截断。因为 `atoi()` 只能处理整数,小数点后的内容会被忽略,只取到第一个非数字字符前的部分,即得到的结果是 10。
如果你需要保留小数部分并存储为 double 类型,你应该使用 `atof()` 或 `stod()` 函数来正确地从字符串解析浮点数。例如:
```cpp
double stopInsAlt;
std::string strHeight = (Ini.GetValue("固定点的选择", "固定点高度")).c_str();
stopInsAlt = std::stod(strHeight);
```
这将会完整地读取字符串中的数值,并将其转换为 double 类型,包括小数部分。
阅读全文