다음 함수는 문자열을 double로 변환하지만 정밀도가 충분하지 않습니다.C++에서 문자열을 두 번 변환
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 라이브러리를 사용하지 않으면 더 나은 방법이 있습니까? 나는 높은 정밀도를 원한다. 가능한 한 높이.
결과가 정확하지 않은 경우가 아니라 출력 정밀도를 적절히 설정했기 때문에 결과가 그대로 출력됩니다. 이 점에 관해서는 몇 가지 질문이 있습니다. – us2012
@BenjaminLindley 질문에 OP는 '산출물'이 31.2459이고, 더 높은 정밀도를 원하기 때문에 불행하다고 OP는 불만스러워합니다. 대답은 현재의 메서드가 결과 double을 올바르게 인쇄하는 경우 원하는 모든 정밀도를 제공한다는 것입니다. 그래서 나는 그것이 도움이된다고 생각하는 경향이 있습니다. – us2012
@ us2012 : 네 말이 맞아, 내 실수 야. –