사용자가 입력 할 숫자를 var input float64
으로 정의하고 정수를 입력하면 오류가 발생할 것으로 예상되지만 err = <nil>
이 표시됩니다. 내가 뭘 놓치고 있니?왜 형식 불일치 오류가 있습니까?
특정 규칙이 숫자 유형 사이 (비 - 상수) 변환에 적용
C:\Go\src\play\exercise>go run exercise2.go
Enter a number to take its square root: 1
err = <nil>
n is 1:
1은 완벽하게 유효한 부동 소수점 숫자입니다. – fuz
아니, 몰랐다. 나는 부동 소수점 숫자가 십진수로 쓰여질 필요가 있다고 생각했다. 내가 생각하던대로,'1.0'은 에러가 발생하지 않아야하지만'1'은 에러를 발생시켜야합니다. 예를 들어, Mark Summerfield의 Go의 책에서 "부동 소수점 숫자는 소수점을 사용하여 쓰여졌습니다 ..." – Zeynel
@FUZxxl이 말하고자하는 것은 "1"은 부동 소수점 숫자로 완벽하게 표현할 수 있다고 생각합니다. 즉 '1.0'이다. '% f' 형식은 소수점을 포함하는 부동 소수점 숫자를 읽어야합니다. 왜냐하면 사람들은 모든 필요가 "1"이라면 사람들이 "1.0"을 입력하는 것을 원하지 않을 것이기 때문입니다. 그러나 실제 증거를 포함하는보다 완전한 답변에 관심이있을 것입니다.) – fresskoma