Я пишу код для проекта Arduino, над которым я работаю, и умножение возвращает мне неправильные значения, и я не могу понять, почему.
String calculateShutterSpeed(float fs, int i, int l){
float fstop = fs;
int iso = i;
int lux = l;
float c = 1.00;
float shutterspeedTop = 0;
double shutterspeedBottom = 0;
shutterspeedTop = pow(fs, 2)*c;
shutterspeedBottom = lux*iso;
shutterspeedBottom = shutterspeedBottom/shutterspeedTop;
Код, выдающий мне ошибку, - это строка, в которой я умножаю люкс на iso, в некоторых случаях (с небольшими числами) он работает нормально, но как только я использую большие числа, он начинает давать мне неправильные числа, такие как люкс 4833 и ISO 200 даст мне -16440.