아두이노 float을 문자열로 변환

아두이노에서 아래처럼 sprintf을 이용하여 문자열로 변경하려고 할때
결과를 보면 ? 가 출력된다.

sprintf(pChrBuffer, "%f", fltValue);

아두이노에서는 float형에 대해서 sprintf가 제대로 지원되지 않는듯하여,
확인하여 보니 아래 함수를 이용하면 변환할수 있다.

char * dtostrf(ouble __val, signed char __width, unsigned char __prec, char * __s);
float fltValue = 123.456;
char pChrBuffer[50];
 
dtostrf(fltValue , 5, 2, pChrBuffer);  // 5 : width, 2 : precision

다른 방법으로는 String을 이용하여 아래와 같이 할수도 있다.

String strValue = String(fltValue);

답글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.