给你骨质唱疏松 2021-06-18 17:28 采纳率: 50%
浏览 17

python调用go的动态链接库整形叠加超过10000后值不精确?

package main

import "C"
import "fmt"

func main() {
   res := Count()
   fmt.Println(res)
}
//export Count
func Count() int {
   i:=0
   num:=0
   for i<100000{
      num+=i
      i++
   }
   return num
}

上面是go语言的整形叠加函数, 下面是Python调用该go文件的动态链接库

 

# coding:utf-8
from ctypes import cdll

lib = cdll.LoadLibrary(r'E:\go\src\GoProject\test_num.so')


res = lib.Count()
print(res)

上面是超过了10000 的整形叠加, 下面是两个程序的结果, 不相等 : 

 

 

如果叠加范围在10000以内, 数值还是准确的 : 

 

 

各位大佬有知道什么原理吗?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 写回答

1条回答 默认 最新

  • 梦幻精灵_cq 2023-02-05 12:05
    关注


      会不会是因为两种语言对“长整型”的支持、解读机制哩?

      go我不晓得,Python是有对“长整型”的描述。我才初通python,没接触到“大数”,所以对“长整型”还没去学习。🤔

    评论 编辑记录

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog