본문 바로가기

C,C++/Etc9

[C++] 소수점 n번째 자리에서 반올림 하기 | std::round 소수점 n번째 자리에서 반올림 하기 함수를 통해 직접 n번째 자리에서 반올림하는 것은 불가능하며, 첫째 자리에서만 반올림이 가능하다. 따라서 소수점 n번째 자리를 소수점 첫째 자리로 만들고 반올림 후 원상태로 복구할 것이다. ex) 23.1275 -> 소수점 셋째 자리에서 반올림 (1) 소수점 셋째 자리인 7에서 반올림하려면 우선 7이 소수점 첫째 자리가 되도록 한다. 23.1275 x 10^2 = 2312.75 (2) (1)의 결과를 헤더의 std::round 함수를 이용해 반올림(첫째 자리에서 반올림하는 함수) 2312.75 -> 2313 (3) 원래 자리수로 되돌리기 위해 (1)에서 곱했던 수(10^2)로 나눈다. (= 0.01 곱하기) 2313 x 0.01 = 23.13 2313 / 100.0 =.. 2020. 2. 26.
[C++] 한 줄 짜리 지식 모음 알게된 개념 가끔 추가... [클래스 멤버 변수 초기화] - 생성자 내에서 멤버 변수에 값을 넣는 것은 초기화가 아닌 대입이다. 따라서 함수의 헤더에 사용하는 초기화 리스트 (initializer list)를 사용하자. [가상 함수와 가상 테이블] - 가상 함수들을 저장하고 있는 가상 테이블은 클래스마다 하나씩 존재하며, 객체가 할당된 메모리 상에 가상 테이블의 주소가 있다. 따라서 가상 함수가 필요하다면 객체의 메모리에서 가상 테이블의 주소를 찾아 가상 테이블로 간 뒤 가상 테이블에서 원하는 함수의 주소를 또 찾아야 한다. 따라서 가상 함수는 런타임 중 실체를 찾는 동적 바인딩이며 속도가 느리다. 하지만 C++의 다형성(Polymorphism)의 핵심 개념인 동일한 interface, 다른 behavi.. 2020. 1. 20.
내가 따라하는 C++ 코딩표준 [포큐 아카데미 C++ 코딩 표준] 출처: https://docs.popekim.com/ko/coding-standards/cpp 1. 네임스페이스는 모두 소문자로 작성하자. namespace myspace {} 2. 입력(input) 매개변수는 const 참조로 출력(output) 매개변수는 포인터로 받자. bool calculate(const int& n1, const int& n2, int* result){...} 그러면 다음과 같이 함수 호출만 보고 쉽게 input과 ouput을 구분할 수 있고 안전하다. 다만 result에 NULL이 들어올 수 있으므로 함수 내에서 assert를 이용해 NULL 여부를 검사한다. calculate(n1, n2, &result); 3. bool 변수 앞에 항상 소.. 2020. 1. 2.