計算結果が合わない理由を教えて下さい
Go言語で1000000000000000000 × 1000000000000000000という計算をしたら結果が
-5527149226598858752になりました。
単純に考えると1000000000000000000000000000000000000になると思うのですがなぜでしょう。
ちなみに実行したコードは以下のものです。
package main
import "fmt"
func main() {
i := 1000000000000000000
fmt.Println(i*i)
}
Rubyで同じようにするとちゃんと1000000000000000000000000000000000000になるのですが、言語の仕様でしょうか。
i = 1000000000000000000
p i*i