以下函数将字符串转换为 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 无法始终在内存中准确表示,因此在使用 float
或 double
时可能会出现(微小的)舍入错误s。但通常您可以安全地忽略这些,除非您打算向月球发送火箭。
关于c++ - C++ 中的字符串到 double 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315583/