c++ - C++ 中的字符串到 double 转换

标签 c++ type-conversion

以下函数将字符串转换为 double 型,但精度不够。

double stringToDouble(string s) {
    double d;
    stringstream ss(s); //turn the string into a stream
    ss >> d; //convert
    return d;
}

当使用 stringToDouble("31.2458782523") 调用时,输出为 31.2459。

如果不使用 Boost 库,有没有办法做得更好?我想要更高的精度。尽可能高。

最佳答案

double 已正确解析,但您很可能看到它的精度错误。怎么输出呢?根据您的需要调整精度就可以了。

此外,您应该知道 float 无法始终在内存中准确表示,因此在使用 floatdouble 时可能会出现(微小的)舍入错误s。但通常您可以安全地忽略这些,除非您打算向月球发送火箭。

关于c++ - C++ 中的字符串到 double 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315583/

相关文章:

c++ - 删除列表控件 (MFC) 中的重复项

java - 如何通过字符串进行类型转换?

c++ - 使用 C 或 C++ 从控制台获取原始输入

c++ - 将 unsigned char > 255 转换为 int

c++ - QTreeWidget 通过拖动重新排序子项目

带有声明帐户的 C++ 构造函数(int =0);

postgresql - 如何将整数转换为字符串并获取字符串的长度

c++ - 限制使用的 C++ 计算类型

go - CRC - uint64 到两个字节?

c++ - 模板的类型转换