Go에서 int64의 큰 값에 대해 누승 및 나누기와 같은 연산을 수행해야하지만 오버플로 문제가 있습니다. float64로 변환하려고 시도했지만 다른 문제가 발생합니다. 여기 내가 시도한 것이있다.Go에서 큰 정수를 사용하는 방법?
저는 정수 변수를 가지고 있습니다.이 변수는 편리한 수학 패키지 (https://golang.org/pkg/math)를 사용하기 위해 float64로 형 변환해야했습니다.
그러나 정수 변수가 너무 큰 경우 올바르게 캐스팅되지 않습니다. 크기가 float64보다 크기 때문에 가정합니다. 예 :
fmt.Printf("%f",float64(111111111111111110)) //Outputs 111111111111111104.000000
저는 math.Mod, math.Pow10 및 math.Log10을 사용하려고합니다. 위의 그림과 같이 많은 수의 논리를 사용하면 어떻게 할 수 있습니까?
int(math.Mod(float64(123)/math.Pow10(1),10))) // Gets the second digit
가능한 : 여기 INT64의 n 번째 진수를 추출하는 데 사용하는 방법입니다 왜 부동 소수점 숫자가 부정확합니까?] (http://stackoverflow.com/questions/21895756/why-are-floating-point-numbers-inaccurate) –
OP는 부동에 대해 물어 보려하지 않았습니다. 어쨌든, 그것은 그 질문의 중복이 아닙니다. – Zoyd