2011-11-09 1 views
27

float를 int로 형 변환하는 여러 가지 방법을 시도했습니다. 원하는 것은 정수 부분 만 얻도록 float를 자르는 것입니다. 나는 float32에서 go로 캐스팅

x := float32(3.1) 
y,_ := strconv.Atoi((strconv.Ftoa32(x,'f',0))) //y becomes 3 

을 사용하고 그러나 x가 3.9 인 경우이 기능이 절단 대신 float32 반올림 때문에, Y는 4가됩니다. 반올림 대신 잘리는 방법이 있습니까? 그렇다면 문자열을 사용하지 않고도 할 수 있습니까?

답변

45

그냥 int()를 사용 (float를 캐스팅처럼 C에서 int로) :

문자열 변환 등을 사용하지 않고, 필요에 따라 3 생산
x := float32(3.1) 
fmt.Println(int(x)) 

.