【发布时间】:2013-02-25 06:31:21
【问题描述】:
以下函数将字符串转换为双精度但精度不够。
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 库,有没有办法更好地做到这一点?我想要更高的精度。尽可能高。
【问题讨论】:
-
输出是这样的,因为您没有相应地设置输出精度,而不是因为方法不够精确。 SO上有很多关于这个的问题。
-
@BenjaminLindley 好吧,问题是 OP 对“输出”为 31.2459 不满意,并且他们不满意,因为他们想要更高的精度。答案是他们当前的方法可以为他们提供他们想要的所有精度,只要他们正确打印结果双精度。所以我倾向于认为它确实有帮助。
-
@us2012:你是对的,我的错。
-
感谢大家的cmets
标签: c++ type-conversion