C: 플로트 값을 인쇄합니다.
쉼표 뒤에 2자리 정수, 10진수 6자리 부동값을 출력하고 싶습니다.그냥 쓰면printf("%f", myFloat)
값이 잘립니다.
이것이 항상 C에서 발생하는 것인지 아니면 단지 C를 마이크로컨트롤러(정확히는 CCS)에 사용하고 있기 때문에 발생하는 것인지 알 수 없습니다만, 참조에서는 다음과 같이 되어 있습니다.%f
잘려나간 플로트입니다.
만약 내 수레가44.556677
인쇄중입니다."44.55"
는 처음 두 자리 소수점만 나타냅니다.
그래서 질문은...6자리 숫자(그리고 6자리 숫자만)를 인쇄하려면 어떻게 해야 하나요?
다음과 같이 할 수 있습니다.
printf("%.6f", myFloat);
6은 소수점 구분 기호 뒤의 자릿수를 나타냅니다.
printf("%9.6f", myFloat)
는 도트 앞의 2자리 숫자, 도트 자체 및 도트 뒤의 6자리 숫자 등 총 9개의 문자로 이루어진 형식을 지정합니다.
printf("%0k.yf" float_variable_name)
여기서k
인쇄하는 문자의 합계수입니다. k = x + 1 + y
(+ 1
점의 경우) 및float_variable_name
출력할 부동 변수입니다.
소수점 앞에 x자리와 소수점 뒤에 y자리가 인쇄된다고 가정합니다.여기서 float_variable_name 앞의 자리수가 x보다 작을 경우 그 앞에 자동으로 0이 추가됩니다.
부동소수점 인쇄에서 올바른 정렬의 문제를 명확히 하기 위해 사용해 보십시오.
printf(" 4|%4.1lf\n", 8.9);
printf("04|%04.1lf\n", 8.9);
출력은
4| 8.9
04|08.9
printf("%.<number>f", myFloat) //where <number> - digit after comma
http://www.cplusplus.com/reference/clibrary/cstdio/printf/
사용하다%.6f
소수점 이하가 6개 인쇄됩니다.
를 사용해야 합니다.%2.6f
대신%f
당신의 printf 스테이트먼트에서
언급URL : https://stackoverflow.com/questions/8345581/c-printf-a-float-value
'it-source' 카테고리의 다른 글
n번째 문자마다 문자열을 분할하시겠습니까? (0) | 2023.01.15 |
---|---|
SQL에서 GROUP BY와 ORDER BY의 차이점은 무엇입니까? (0) | 2023.01.15 |
C/C++로 DLL을 컴파일하여 다른 프로그램에서 호출합니다. (0) | 2023.01.13 |
Intelij IDEA가 크래쉬하여 오류가 발생하였습니다. (0) | 2023.01.13 |
Java Byte[] 어레이 비교 방법 (0) | 2023.01.13 |