![]() |
1
2
Python将始终显示复数的虚部,因为否则您无法从输出中区分它确实是复杂的。这类似于包括
实际零件在不完全为+0时显示。在您给出的示例中,显示真实零件是因为它是负零。请注意,在浮点中,负零和正零具有不同的表示形式,即使它们比较相等:
这对于模拟Python的输出可能没有多大帮助,因为您可能无法轻松预测Python何时会得到负0的结果。例如:
加法将实部归一化为+0
与正虚数相乘会保留实部的负号,但与负虚数相乘不会使实部为负。 但所有这些都只是实现细节,因此不同的Python实现可能会有所不同。 浮点有两个独立的正负零表示,这是IEEE 754浮点实现的一个细节。看见 https://en.wikipedia.org/wiki/Signed_zero 检测是否输出真实部分的源代码部分包括:
第一部分适用于两种形式的零。只有当真实部分不是负数时,第二部分才是真的(
|
![]() |
2
2
如果要实现另一个程序来精确复制CPython解释器的当前行为,可以研究复数表示的源代码:
一些血淋淋的细节可以在函数中找到
我不认为浮点数的精确交互式输出是官方Python语言规范的一部分,所以这里的源代码可能是最好的指南。 编辑:如果你不想重新发明轮子,那么可能是时候研究一下了 embedding Python in another application . |
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |