double d=3 이라고 하면 정수 3이 double형에 맞춰서 3.0으로 자동으로 변화되서 문제가 없다고 하는데

double d
scanf(\"%e\",&d) 로 한 다음에 3.15 를 입력하면 에러가 난다는데 이것도 문제가 없는 거 아니에요?
어차피 3.15가 %e에 어긋나는 것도 아니고 이걸 받아서 더 큰 double에 집어 넣는데 왜 문제가 될까요?
위에는 문제가 안 되는데 왜 이건 문제가 되는지 갈켜주세요.