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

时间:2018-08-27 18:13:15

标签: 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

如果我使用计算器,的确是Python3的真实值

我的C代码怎么了?

谢谢! 问候!

1 个答案:

答案 0 :(得分:9)

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

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