问题标签 [strtod]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
27 浏览

python - 当从 Python ctypes 调用并从 Spyder 或 Pyzo 运行时,strtod 返回错误值

我需要从 Python 脚本调用一个 C 库,它将字符串解析为双精度并打印结果。

解析是否有效取决于我使用的 IDE。我的操作系统是 Debian 11。这是一个最小的例子。

库(文件 test.c):

它在终端中编译:

Python 脚本调用库并使用 ctypes(文件 test.py)传递字符串参数:

我从终端运行这个脚本

我得到

它按预期工作。当我用 Eric-ide 运行这个脚本时,它也可以工作。但是,当我使用 Spyder 或 Pyzo 运行此脚本时,我得到:

仅转换整数部分,并使用逗号而不是点作为小数分隔符。我怀疑是编码问题。我在 Python 脚本中尝试过'356.5684'.encode('ascii'),但问题仍然存在。

你有什么想法吗?