Почему после всей математики я получаю предупреждение о расширении аккумулятора? - PullRequest
0 голосов
/ 04 марта 2020

Я пишу программу, которая проверяет температуру материалов, необходимых для смешивания бетона. Затем он выполнит формулу, чтобы определить, какой должна быть температура воды, чтобы достичь желаемой температуры бетона. У меня есть вся правильная информация для формулы, так что это не проблема, но когда я компилирую программу, я получаю несколько предупреждений о расширении аккумулятора, каждое после математических операторов. Я попытался разделить математику, думая, что число становится слишком большим, но это не так, поскольку у него все еще есть это предупреждение. Когда я запускаю программу, если я ожидаю получить что-то в диапазоне 80 градусов, я могу получить сумасшедшие большие положительные или отрицательные результаты. Первое уравнение для холодных погодных условий, а второе - для жарких. До того, как я добавил горячее уравнение, холодное работало нормально. Теперь ни один из них не работает должным образом.

Итак, мой вопрос: что такое расширение аккумулятора и почему я получаю предупреждение об одном после моей математики?

Вот мой код:

        temporary2 := firstBinWeight + secondBinWeight + thirdBinWeight + fourthBinWeight + cementiousMaterialsWeight + (4.54545 * waterWeight);

        temporary1 := firstBinTemp * firstBinWeight +secondBinTemp * secondBinWeight + thirdBinTemp * thirdBinWeight + fourthBinTemp * fourthBinWeight +cementiousMaterialsTempTest * cementiousMaterialsWeight - temporary2 * requiredConcreteTemp / waterWeight;

        outputTemp := -0.22 * temporary1;

        temporary5 := requiredConcreteTemp + 112;

        temporary4 := firstBinWeight * requiredConcreteTemp + secondBinWeight * requiredConcreteTemp + thirdBinWeight * requiredConcreteTemp + fourthBinWeight * requiredConcreteTemp - cementiousMaterialsWeight * requiredConcreteTemp - 4.54545 * waterWeight * requiredConcreteTemp + iceWeight * temporary5;

        temporary3 := firstBinTemp * firstBinWeight + secondBinTemp * secondBinWeight + thirdBinTemp * thirdBinWeight + fourthBinTemp * fourthBinWeight + cementiousMaterialsTempTest * cementiousMaterialsWeight - temporary4 / waterWeight;

        outputTemp2 := -0.22 * temporary3;
...