2012-03-06 2 views
0

C++에서 float64의 데이터를 잃지 않고 float64 유형의 데이터를 문자열로 변환하려면 어떻게해야합니까? 나는 문자열로 변환 될뿐만 아니라 번호의 양쪽에 문자열을 추가하고 파일로 작성되도록 보내야한다.Float64 to string

코드 :

string cycle("---NEW CYCLE "); 
cycle+=//convert float64 to string and add to cycle 
cycle+= "---\r\n"; 
writeText(cycle.c_str()); //writes string to txt file 

감사합니다.

+2

float64 란 무엇입니까? 표준 C++에는 해당 이름의 유형이 없습니다. – PlasmaHH

+0

맞춤 유형 float로 처리 할 수 ​​있습니다. – moesef

+0

비록 float로 변환 할 때 데이터가 손실 될 것 같은데 ...이 경우 문자열로 변환하기 위해 고유 한 기능을 작성해야합니다. – PlasmaHH

답변

0

sprintf을 사용해야합니다. 여기 C++ Reference 설명서를 참조하십시오. 또한 내가 문자열을 추가 할 string::append을 사용

char str[30]; 
float flt = 2.4567F; 
sprintf(str, "%.4g", flt); 

: 뭔가처럼 될 것이라고 예를 들어

. here을 참조하십시오. 의견을 따라

UPDATE

업데이트 코드입니다.

+0

'str'은 정적으로 할당 될 수 있습니다 :'char str [20]'과 동적 할당을 선호하는 것이 좋습니다. –

+0

질문에 사용 된 [[string :: operator + ='] (http://www.cplusplus.com/reference/string/string/operator+=/)을 사용하지 않는 이유는 무엇입니까? – Johnsyweb

+0

구체적인 이유 없음 - 추가 옵션이 있으므로 추가 기능을 사용하는 경향이 있습니다. 이 특별한 경우에는 중요하지 않지만 단지 내가 사용하라고 거짓말을했습니다 ... – Toby

0

sprintf을 사용하여 문자열의 서식을 지정할 수 있습니다.

3

std::string으로 숫자를 변환하는 usual waystd::ostringstream을 사용합니다.

std::string stringify(float value) 
{ 
    std::ostringstream oss; 
    oss << value; 
    return oss.str(); 
} 

    // [...] 
    cycle += stringify(data);