인프런 커뮤니티 질문&답변

lll님의 프로필 이미지
lll

작성한 질문수

문제로 배우는 C언어

두 수의 곱

scanf 입력한 수 중 일부 자리만 저장

작성

·

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;

와 같이 직접 코드로 조작해야 합니다.

lll님의 프로필 이미지
lll

작성한 질문수

질문하기