Python3和C不同的数学除法结果

标签 python c

我有一个简单的数字除法。我有这两个号码:

  • 39.654
  • 8.381903173E-8

所以,如果我对 C 进行除法:

// ...
float ii = 39.654;
double bb = 8.381903173E-8;
printf("\n%.20f\n", ii/bb);
// ... 

输出为:473090639.56200009584426879883

但是,如果我使用 Python3:

39.654/8.381903173E-8

输出为:473090647.5719557

如果我用计算器,确实,真正的值(value)是Python3

我的 C 代码有什么问题?

谢谢! 问候!

最佳答案

您必须将苹果与苹果进行比较。在 Python 中,所有浮点变量都是 double 类型,因此您应该在 C 程序中使用相同的数据类型:

double ii = 39.654;
double bb = 8.381903173E-8;
printf("\n%.20f\n", ii/bb);

关于Python3和C不同的数学除法结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52044856/

相关文章:

python - 如何在Python中使用输入和输出文件

python - 计算点击数据的精确度和召回率

C 中的字符数组

c - 在字符串回文中找到缺失的字符

c - 粗体句子错误 : "Subscripted value is neither array nor pointer vector :("

python - 如何创建一个新列,给出 python 数据框中该特定月份的天数?

python - Pandas date_range - 减去 numpy timedelta 得到奇怪的结果,时间不为 0 :00:00

python - 为什么我在格式字符串的 python warnings.formatwarning 中出现编码错误?

c - 带 while 循环的读取命令函数

命令行参数段错误(核心已转储)