python - 在 C 中除以大(多)数(得到一个零,当我知道它不为零时)

标签 python c math double division

好的,所以我已经在大约 20 秒内证明了在 python 中答案是 -7.98392238758e-07,但为什么我在 C 中不能收到相同的答案(我得到零)。

double x = 1255060;
double y = -1571985829941;

double z = x/y;

printf("\nZ is %f", z);

最初我认为问题是我需要使用 long long 而不是 double,但我仍然收到相同的答案 0。

我很想知道这个恼人问题的解决方案。

最佳答案

该示例给出了预期的答案(在 clang 下):

Z is -0.000001

(与向上舍入的 -7.98392238758e-07 相同)

您可以在 printf 中使用 %e 格式占位符,使其使用科学记数法,就像 python 使用的一样。

double x = 1255060;
double y = -1571985829941;

double z = x/y;

printf("\nX is %f", x);
printf("\nY is %f", y);
printf("\nZ is %e", z);

输出

X is 1255060.000000
Y is -1571985829941.000000
Z is -7.983914e-07

关于python - 在 C 中除以大(多)数(得到一个零,当我知道它不为零时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25834593/

相关文章:

c - MPI 星型(中心辐射型)通信器的性能是否优于 MPI_COMM_WORLD?

java - Project Euler #10 Java 解决方案不起作用

python - 如何过滤包含 NaN 的 bool 掩码

python - 从 Pandas 形式的 iris 数据集到 sk-learn 形式的有效方法?

c - 在内核空间将__be32 ip地址转换为char的方法

.net - 如何计算 2 个或更多不超过特定值的值集之间的可能数字的数量?

math - 将深度纹理样本转换为距离

python - Django 项目中不存在 manage.py

python - 图像未显示在 Tkinter 中的标签上

C 编程 : warning:conflicting types?