• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

树莓派上的golang得不出正确结果

9604a3b72d92b876 2020-05-20 浏览量:627

我在windows下使用go语言,似乎没有注意赋值类型,例如计算pi:

package main

import "fmt"
import "time"
import "math"

func main() {
n :=100000000
  sum := 0
  start := time.Now().UnixNano()/1e6
  for i := 0; i <= n; i++ {
  sum += int(math.Sqrt(float64(n*n-i*i)))
  }
  end := time.Now().UnixNano()/1e6
  fmt.Printf("%v"4*float64(sum)/float64(n)/float64(n))
  fmt.Println()
  fmt.Printf("Cost time:%vs"(float64(end-start)/1000))
  fmt.Println()
}
完全没有问题,但同样代码,在Raspbian下,结果就乱七八糟了,甚至减少n到10000,也得不出正确结果,很明显,赋值的时候i:=0没能正确指明类型。估计是当做int8处理了。。。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 现在go语言依赖各个平台上不同的底层库去实现,就像C语言,glibc在各个平台上也有一些差异的,这种只能根据不同平台去适配
    • 发布于 2020-05-23
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 是的,树莓派会根据分配的10000000自动分配类型,windows需要手动给申明类的
    • 发布于2020-05-20
    • 举报
    • 评论 1
    • 0
    • 0
9604a3b72d92b876 回复了 yhj416606438 :恰恰是windows不需要指明类型,自动得出正确结果,树莓派 回复

相关问题

问题达人换一批

树莓派上的golang得不出正确结果