Ошибка: попытка деления на ноль

173
22 августа 2021, 06:10

Я пытаюсь присвоить переменной типа double математическое выражение, которое в свою очередь тоже состоит из переменных

 countPercent = 100 / (count_pipe_plan / (count_pipe_fact1 + count_pipe_fact));

что получает дебагер:

count_pipe_plan = 162

count_pipe_fact1 = 1

count_pipe_fact = 194

Дебаггер выбрасывает мне ошибку, что я пытаюсь поделить на ноль. В чем может быть дело?

Answer 1

Типичная ошибка приведения типов. Вы оперируете целыми числами и почему то ожидаете, что они будут содержать дробную часть.

У вас есть 2 варианта. Либо добавить дробный операнд вот так

countPercent = 100 / (count_pipe_plan 
               / (count_pipe_fact1 + count_pipe_fact * 1.0));

Либо явно приводить типы вот так

countPercent = 100 / ((double)count_pipe_plan 
               / ((double)count_pipe_fact1 + (double)count_pipe_fact));

Но вообще ваше выражение можно переписать вот так

 countPercent = 100 * ((double)count_pipe_fact1 + (double)count_pipe_fact) 
               / (double)count_pipe_plan;

Хотя вы, наверное, всё таки имели ввиду это

 countPercent = 100 * (double)count_pipe_plan 
               / ((double)count_pipe_fact1 + (double)count_pipe_fact);
READ ALSO
Как добавить программу в автозапуск?

Как добавить программу в автозапуск?

Написал небольшую утилиту для закрытия ненужных процессов винды при старте (Sirena, Очередь печати и тд)

199
перегрузка оператора деления

перегрузка оператора деления

как реализовать перегрузку оператора деления (частного)Если можно пример

229
ошибка при создании мода на Unity

ошибка при создании мода на Unity

Assets/Editor/ContentToolcs(44,4): error CS0103: The name `EditorAssetBundleHelper' does not exist in the current context ошибка в 44 строке, я не совсем опытный, по этому не могу решить проблему...

160
Отсутствует PropertyExpression

Отсутствует PropertyExpression

Пробую написать простой пример на с использованием Expressions, но получаю странную ошибку: не могу использовать PropertyExpression во время компиляцииКогда...

119