首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从python到C++ double转换时的精度损失

从python到C++ double转换时的精度损失
EN

Stack Overflow用户
提问于 2014-04-07 14:04:46
回答 2查看 1K关注 0票数 0

我正在将python代码嵌入我的c++程序中。PyFloat_AsDouble的使用正在造成精度的下降。它只保持6位精确数字。我的程序对精度非常敏感。有已知的解决办法吗?下面是相关的C++代码:

代码语言:javascript
运行
AI代码解释
复制
_ret = PyObject_CallObject(pFunc, pArgs);
vector<double> retVals;
for(size_t i=0; i<PyList_Size(_ret); i++){
    retVals[i] = PyFloat_AsDouble(PyList_GetItem(_ret, i));
}

retValsi的精度只有6,而python代码返回的值是一个可以具有更高精度的浮点。如何获得完整的精度?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-07 14:14:56

假设Python对象包含以双精度存储的浮点值,那么您的代码将按照您的预期工作。

很可能你只是在错误地诊断一个不存在的问题。我的猜测是,您正在查看调试器中的值,调试器仅以有限的精度显示这些值。或者你是在以有限的精度打印出来。

票数 2
EN

Stack Overflow用户

发布于 2014-04-07 14:16:03

打印类型(PyList_GetItem(_ret,i))

我打赌它会浮起来。

编辑:在python代码中,而不是C++代码中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22923983

复制
相关文章
2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true
2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true false; C: true true true false false;D: true true false true true。
福大大架构师每日一题
2022/09/30
1.3K0
2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true
2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。 pac
2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。
福大大架构师每日一题
2022/10/28
1.1K0
2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。 pac
2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D
2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。
福大大架构师每日一题
2022/11/06
8980
2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D
java lang illegalargument_java true false
我们的JSP项目在上传文件时通常都需要获取目录在服务器上的绝对路径,request.getRealPath()方法显示已经过时,但是还是有替代方法的。HttpSession session = request.getSession(true); //获取session
全栈程序员站长
2022/10/02
4320
Unrecognized token 'XXXX': was expecting ('true', 'false' or 'null')
当dataType指定为json后,1.4+以上的jquery版本对json格式要求更加严格.如果不是严格的json格式,就不能正常执行success回调函数.
ydymz
2018/09/10
7.7K0
index=False与index=True的含义
在 Excel 中 index 函数是用来引用我们所需的信息. index = False:输出不显示 index (索引)值 index = True:输出显示 index (索引)值 ---- 一、index = False 二、index = True ---- 一、index = False 代码示例 运行结果 二、index = True 代码示例 运行结果
荣仔_最靓的仔
2021/09/07
2.7K0
面试:a==1 && a==2 && a==3 是 true 还是 false?
这是一个JS社区抛出来的问题。第一眼看到这个问题的时候,感觉这似乎是一个无稽之谈,一个变量怎么可能会同时满足俩个条件呢!
程序猿DD
2021/07/13
6160
面试:a==1 && a==2 && a==3 是 true 还是 false?
做「容量预估」可没有true和false
虽然如此,但是那些体量达到亿级或者是千万级的产品也只是少数公司的专属。对于整个行业里百万+的程序员群体来说,估计也就只有10%人有机会接触到这些“大系统”。
Zachary_ZF
2019/08/31
9920
Javascript中的Return,Return false和Return true
版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn.net/Quincuntial/article/details/52928626
Tyan
2019/05/25
2.4K0
面试官:为什么“false == []”和“false == ![]”都返回true?
英文 | https://javascript.plainenglish.io/interviewer-why-do-false-and-false-both-return-true-6e7944220337
winty
2023/01/09
9980
面试题:a==1 && a==2 && a==3 是 true 还是 false?
这是一个JS社区抛出来的问题。第一眼看到这个问题的时候,感觉这似乎是一个无稽之谈,一个变量怎么可能会同时满足俩个条件呢!
良月柒
2021/07/13
5580
面试题:a==1 && a==2 && a==3 是 true 还是 false?
shell判空true false的一个坑
在写shell的时候发现一个违反直觉的的操作,一般判断一个变量是否为boolean,习惯上使用if param。 但是在写脚本的时候,发现无论如何,不会走false。
潇洒
2023/10/20
8030
为什么1000==1000返回false,100==100返回true?
这可能是个讨论得较多的话题,但是我觉得它很有趣:为什么1000==1000返回false,100==100返回true?
三哥
2018/12/19
1.2K0
@Modifying(clearAutomatically = true)
今天在写测试的时候,里面有一个逻辑是更新数据,因为需要同时更新多条数据,所以我使用了JPQL来更新数据,但是在更新的语句成功执行并返回了更新了N条数据后,再次执行查询到的数据还是没有更新过的数据。
前Thoughtworks-杨焱
2021/12/07
1.1K0
leetcode 139. 单词拆分---完全背包问题之true or false类型
单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包装满。
大忽悠爱学习
2021/11/15
5480
每周四更面试题:True+True=?
面试题:True + Ture == ? Python 的 “+” 号会根据操作对象数据类型的不同而进行重载,操作对象为数字类型时,它是算术运算符;操作对象为序列类型时,它是序列连接符。 那么问题是:如果操作对象为布尔类型呢? 你是否会认为?在揭晓答案前,首先了解一下 Python 的布尔数据类型。 布尔值 布尔数据类型只有 True or False 两个值,它作为逻辑判断的基准被应用在程序各处的布尔上下文中(e.g. if、while、for 等逻辑控制语句)。 虽然我们也会经常在布尔上下文中使用表
企鹅号小编
2018/01/22
8150
每周四更面试题:True+True=?
为什么Java中1000==1000为false而100==100为true?
基本知识:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的。如果两个引用指向不同的对象,用==表示它们是不相等的,即使它们的内容相同。
Leetcode名企之路
2020/09/04
6250
为什么 Java 中“1000==1000”为false,而”100==100“为true?
基本知识:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的。如果两个引用指向不同的对象,用==表示它们是不相等的,即使它们的内容相同。
周辰晨
2022/09/20
4950
点击加载更多

相似问题

在MasterPage的超链接中设置动态Href

10

单击MasterPage中的链接按钮时出错

12

超链接控件vs链接按钮vs ImageButton vs ASP.NET中的按钮控件

12

使用服务器控件按钮打开与rel="“和href="”的链接

12

按钮、UpdatePanel和MasterPage

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文