boostpython submodu的python-qt浮点精度

2024-09-27 00:19:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我用boostpython为我的PyQt程序制作了一个cpp子模块,它从zip数据文件中提取一些数据。你知道吗

在python中测试时,它可以正常工作:

import BPcmods
BPzip = BPcmods.BPzip()
BPzip.open("diagnostics/p25-dev.zip")
l=BPzip.getPfilenames()
t=BPzip.getTempArray([l[1][4],l[1][3]],40.)
print(t[11][:10])

>> [40.1, 40.44, 40.78, 41.11, 41.44, 41.77, 41.77, 42.09, 42.41, 42.73]

如果我将相同的代码放在main部分的开头,它也会给出相同的数据,但是如果我在调用

main.app = QtGui.QApplication(sys.argv)

它突然产生:

[40.0, 40.0, 40.0, 41.0, 41.0, 41.0, 41.0, 42.0, 42.0, 42.0]

为什么??发生什么事了?这些数字仍然是浮点数,但突然它们被舍入到最接近的整数?!?你知道吗


Tags: 模块数据import程序main数据文件openzip
1条回答
网友
1楼 · 发布于 2024-09-27 00:19:04

它与使用std::stod将数据文件中的数据字符串转换为double有关。我不知道为什么,但换成:

boost::algorithm::trim(s);
double val = boost::lexical_cast<double>(s);

在pyqt中,它也能正常工作。你知道吗

相关问题 更多 >

    热门问题