Go에서 간단한 분할을 수행하려고합니다.
fmt.Println(3/10)
0.3 대신 0을 인쇄합니다. 이건 좀 이상 해요. 누군가가 그 이유를 공유해 주시겠습니까? Go에서 다른 산술 연산을 수행하고 싶습니다.
감사
답변:
표현식 3 / 10은 유형이 지정되지 않은 상수 표현식입니다. 사양 은 상수 표현식에 대해 이렇게 말합니다.
이진 연산의 피연산자가 다른 종류의 유형이 지정되지 않은 상수 인 경우 연산 및 부울이 아닌 연산의 경우 결과는이 목록의 뒷부분에 나오는 정수, 룬, 부동 소수점, 복합 유형을 사용합니다.
때문에 3하고 10지정되지 않은 정수 상수이며, 식의 값 (지정되지 않은 정수이고, 0이 경우에).
피연산자 중 하나는 부동 소수점 상수에 대한 결과에 대한 부동 소수점 상수 여야합니다. 다음 표현식은 유형이 지정되지 않은 부동 소수점 상수로 평가됩니다 0.3.
3.0 / 10.0
3.0 / 10
3 / 10.0
형식화 된 상수를 사용할 수도 있습니다. 다음 표현식은 float64상수로 평가됩니다 0.3.
float64(3) / float64(10)
float64(3) / 10
3 / float64(10)
위의 표현식을 인쇄하면 0.3. 예를 들어, fmt.Println(3.0 / 10)인쇄 0.3.
fmt.Println(float64(3) / float64(10))제공합니다 0.3.