У меня простое деление числа. У меня есть два числа:
Итак, если я делаю разделение на 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-кодом?
Спасибо! С уважением!
Вы должны сравнить яблоки с яблоками. В Python все переменные с плавающей запятой имеют тип double
, поэтому вы должны использовать один и тот же тип данных в своей программе на C:
double ii = 39.654;
double bb = 8.381903173E-8;
printf("\n%.20f\n", ii/bb);
ii
как float
и bb
как double
. Когда мы делаем ii/bb
разве не должно быть повышено значение ii
для этой операции?
float
.
float
только если вы хотите пожертвовать точностью, чтобы повысить производительность, что часто необходимо при выполнении 3D-математики в реальном времени.