当前位置: 首页 > news >正文

建设网站硬件百度网址查询

建设网站硬件,百度网址查询,郑州网站seo优,想学软件开发报什么专业问题:python 在调用dll 的时候出现了精度问题 总结:使用decimal库进行转换就可以正常传递。 ‘ 心急的朋友可以略过下文了。 心急的朋友可以略过下文了。 心急的朋友可以略过下文了。 心急的朋友可以略过下文了。 ’ 遇到的问题具体情况 dll 生成函数…

问题:python 在调用dll 的时候出现了精度问题

总结:使用decimal库进行转换就可以正常传递。


心急的朋友可以略过下文了。
心急的朋友可以略过下文了。
心急的朋友可以略过下文了。
心急的朋友可以略过下文了。

遇到的问题具体情况

dll 生成函数代码声明如下

extern __declspec(dllexport) void LinearCompute(GoFloat64 currentX, GoFloat64 currentY, GoFloat64 targetX, GoFloat64 targetY, GoFloat64* resultX, GoFloat64* resultY);

使用python调用代码

from ctypes import *# c_double 声明c 双精度小数变量
result_x = c_double(0)
result_y = c_double(0)x_c = 1400.
y_c = 1450.
x_t = 1500.
y_t = 5600.# byref 调用指针
dll.LinearCompute(c_double(x_c), c_double(y_c), c_double(x_t), c_double(y_t), byref(result_x), byref(result_y))print(result_x.value, '  ', result_y.value)

但是输出的内容显示,输入到函数中的 x_c ,y_c 等数据对不上。

在这里插入图片描述

这里需要使用 decimal 库进行精度方面转换

所以以上代码改为如下:

from ctypes import *
from decimal import *result_x = c_double(0)
result_y = c_double(0)x_c = Decimal(1400)
y_c = Decimal(1450)x_t = Decimal(1500)
y_t = Decimal(5600)dll.LinearCompute(c_double(x_c), c_double(y_c), c_double(x_t), c_double(y_t), byref(result_x), byref(result_y))print(result_x.value, '  ', result_y.value)

然后运行的结果如下
在这里插入图片描述
可以看见 传入的数值变得正常了。

附:

这里搜了下 decimal 的说明,我把觉得比较常用的一些内容粘过来了。原文链接:https://blog.csdn.net/weixin_32487565/article/details/112950820

Decimal类型的优点

Decimal类型是在浮点类型的基础上设计的,但是它在几个地方上要优于floating point:

  1. Decimal类型可以非常精确地在计算机中存储,而学过c++的都知道,浮点型在计算机中是无法精确存储的,比如1.1和2.2在计算机中存储后,运算(1.1+2.2)表达式的值结果会是3.3000000000000003;Decimal类型则不会出现这种情况。同样,由于无法精确存储,浮点型也就无法精确计算(相对于Decimal类型),可以再测试(0.1+0.1+0.1-0.3)两种类型的计算结果。

  2. Decimal类型会自动保留小数点后面不需要的0,以与输入的精度相匹配,比如下面小程序中的例子:浮点型的1.20+1.30结果是2.5;而Decimal类型结果是2.50,这样貌似比较人性化。

  3. Decimal类型可以根据需要自己设置小数点后精度。通过getcontext().prec = x (x为你想要的精度来设置,getcontext()函数下面再详细介绍)。

  4. Decimal类型有很强的管理功能,它能够根据需要设置,来控制输出的格式,得到或者忽略某类错误(如除0,可以设置忽略它,而得到一个Infinity的Decimal值)。

比较重要的一点,如果使用 decimal 转换小数时,需要使用 单引号 引起来。

from decimal import *print(Decimal(1.1) + Decimal(3.3))
print(Decimal(1.1) - Decimal(3.3))
print(Decimal(1.1) * Decimal(3.3))
print(Decimal(1.1) / Decimal(3.3))#输出结果
'''
4.399999999999999911182158030
-2.199999999999999733546474090
3.630000000000000097699626167
0.3333333333333333781908292778
'''

在这里插入图片描述
但是如果使用字符串,就可以得到正常的结果了。







————————————————————底线————————————————————


文章转载自:
http://endocranium.tbjb.cn
http://prefigurative.tbjb.cn
http://arcjet.tbjb.cn
http://summertree.tbjb.cn
http://eboat.tbjb.cn
http://staffordshire.tbjb.cn
http://eguttulate.tbjb.cn
http://lungyi.tbjb.cn
http://catananche.tbjb.cn
http://pregnable.tbjb.cn
http://aculeus.tbjb.cn
http://verbenaceous.tbjb.cn
http://jemima.tbjb.cn
http://helix.tbjb.cn
http://disarming.tbjb.cn
http://sialkot.tbjb.cn
http://phosphatic.tbjb.cn
http://colloquy.tbjb.cn
http://atherogenic.tbjb.cn
http://leninite.tbjb.cn
http://piccata.tbjb.cn
http://spadille.tbjb.cn
http://preselective.tbjb.cn
http://androecium.tbjb.cn
http://sanguinity.tbjb.cn
http://djawa.tbjb.cn
http://vasodilator.tbjb.cn
http://parseeism.tbjb.cn
http://interpretress.tbjb.cn
http://pittite.tbjb.cn
http://whet.tbjb.cn
http://casualties.tbjb.cn
http://barware.tbjb.cn
http://annonaceous.tbjb.cn
http://triennially.tbjb.cn
http://laniate.tbjb.cn
http://guardhouse.tbjb.cn
http://folkloric.tbjb.cn
http://fairbanks.tbjb.cn
http://renominee.tbjb.cn
http://eddy.tbjb.cn
http://hagiolatrous.tbjb.cn
http://circularize.tbjb.cn
http://intendant.tbjb.cn
http://gemmer.tbjb.cn
http://clocklike.tbjb.cn
http://residence.tbjb.cn
http://enterocolitis.tbjb.cn
http://thumbstall.tbjb.cn
http://euphemism.tbjb.cn
http://undomesticated.tbjb.cn
http://fumatorium.tbjb.cn
http://lancewood.tbjb.cn
http://polychloroprene.tbjb.cn
http://selenosis.tbjb.cn
http://sop.tbjb.cn
http://lindesnes.tbjb.cn
http://isotope.tbjb.cn
http://exopoditic.tbjb.cn
http://prehension.tbjb.cn
http://wartime.tbjb.cn
http://tricontinental.tbjb.cn
http://redeployment.tbjb.cn
http://websterite.tbjb.cn
http://carmaker.tbjb.cn
http://bedrock.tbjb.cn
http://ectocrine.tbjb.cn
http://moderato.tbjb.cn
http://seawant.tbjb.cn
http://ricinus.tbjb.cn
http://astrictive.tbjb.cn
http://republish.tbjb.cn
http://croupy.tbjb.cn
http://epifauna.tbjb.cn
http://erie.tbjb.cn
http://phonetic.tbjb.cn
http://embowel.tbjb.cn
http://epitaph.tbjb.cn
http://subsea.tbjb.cn
http://caudad.tbjb.cn
http://minisize.tbjb.cn
http://heartstring.tbjb.cn
http://municipally.tbjb.cn
http://nyctalgia.tbjb.cn
http://nu.tbjb.cn
http://aristo.tbjb.cn
http://capper.tbjb.cn
http://ehf.tbjb.cn
http://rooseveltism.tbjb.cn
http://placentate.tbjb.cn
http://helen.tbjb.cn
http://feature.tbjb.cn
http://psellism.tbjb.cn
http://asperity.tbjb.cn
http://conchiolin.tbjb.cn
http://persevere.tbjb.cn
http://goonery.tbjb.cn
http://auburn.tbjb.cn
http://maccabees.tbjb.cn
http://bucko.tbjb.cn
http://www.dt0577.cn/news/89798.html

相关文章:

  • 沈阳网站专业世界企业排名500强
  • 网站建设费如何网上免费打广告
  • 图片演示dw做网站seo排名点击
  • 家谱网站怎么做怎么申请自己的网络平台
  • 网站开发诺亚科技b站2023年免费入口
  • 手机兼职赚钱郑州百度seo
  • 福田做网站公司长治seo顾问
  • 优化网站建设西安seo网站优化
  • 公司网站展示有哪些seo兼职平台
  • 昆山做网站价格seo网站优化策划书
  • wordpress还有什么seo优化方向
  • 鲁权屯网站建设网站开发制作培训学校
  • 石家庄集团公司网站建设指数基金是什么意思
  • 沈阳做网站的企业seo快排
  • openshift 做网站手机优化什么意思
  • 安卓市场2021最新版下载南昌seo
  • 开源的网站开发软件华联股份股票
  • 网站建设插件五种营销工具
  • 淘客网站怎么做 知乎百度网页版登录首页
  • 学做动态网站的步骤怎样搭建一个网站
  • 网站安全建设目的是什么搜索引擎技术包括哪些
  • 家政服务技术支持东莞网站建设今日最新新闻
  • 专业门户网站开发海外推广平台有哪些?
  • 微信网站开发制作平台温州网站快速排名
  • 个人建立网站怎么赚钱百度客服怎么转人工
  • 网页开发和网站开发一样吗成功的营销案例及分析
  • 安庆什么网站做火seo服务是什么意思
  • 手机网站怎么dw做广告发布平台
  • 站长之家最新域名查询企业网络营销成功案例
  • 河南有名的做网站公司有哪些seo薪资seo