std::cout.precision() 및 후행 0
std::cout.precision()의 올바른 사용법을 이해하는 것이 중요합니다. 부동 소수점 숫자를 표시할 때. 이 글에서는 예상치 못한 동작을 해결하기 위한 구체적인 예를 살펴보겠습니다.
초기 코드 및 문제
다음 코드를 고려하여 결과를 표시하려고 합니다. 두 정수를 부동 소수점 숫자로 나누기:
#include <iostream> #include <stdlib.h> int main() { int a = 5; int b = 10; std::cout.precision(4); std::cout << (float)a / (float)b << "\n"; return 0; }
이 코드는 0.5000을 표시할 것으로 예상되지만 대신 0.5를 인쇄합니다. 이러한 불일치는 원래 데이터 유형이 정수이기 때문에 발생합니다.
해결 방법: std::fixed Manipulator
부동 소수점 숫자에 후행 0을 표시하려면, std::fixed 조작자를 std::cout에 전달해야 합니다. 이 조작기는 소수점 표현이 고정 소수점 표기법을 사용하여 후행 0을 유지하도록 보장합니다.
#include <iostream> #include <stdlib.h> #include <iomanip> int main() { int a = 5; int b = 10; std::cout << std::fixed; std::cout << std::setprecision(4); std::cout << (float)a / (float)b << "\n"; return 0; }
std::fixed 조작기를 사용하면 이제 코드가 0.5000을 올바르게 인쇄합니다. std::setprecision() 조작자는 원하는 소수 자릿수를 지정하는 역할을 계속 담당합니다.
위 내용은 `std::cout.precision()`이 부동 소수점 숫자에 대해 후행 0을 표시하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!