작성
·
276
0
1. 이해한 것
강의에서 설명한대로 scanf는 lf로 받고 printf 시에만 0.2f 를 하게되면, 진짜 둘째짜리까지만 받은게 아니라 원래 소수까지 받고 나서 곱한 뒤에 출력할 때 소숫점 셋째자리에서 반올림하는 코드라고 이해했습니다.
2. 궁금한 것
3.1295846 과 7.118592 를 입력해도 3.12와 7.11 만 입력받아서 출력예제와 동일한 값 22.18이 나오게 할 수는 없나요? 있다면 코드를 알고싶어요.
3. 제 생각
저는 scanf("%0.2lf %0.2lf", &a, &b) 를 시도해봤는데 0이 나왔습니다. 문자열 배열 두개를 선언해서 [인덱스] 번호를 활용해 0부터 쭉 받으며 데이터가 숫자인지 소수점인지 비교하다가 소수점 발견시 그 요소 이후 두 요소만 더 저장하는 방법을 생각해보았는데 배보다 배꼽이 큰 것 같습니다.
답변 1
0
안녕하세요^^
double 형 변수 a를 만들어 3.1295846를 받았다고 가정한다면
a=a*100;
a=int(a);
a=a/100;
와 같이 직접 코드로 조작해야 합니다.