Хорошо, вот в чем дело. С DataTable
я читаю number_of_project и number_of_hours_per_day (чаще всего от 5 до 7 часов в день). Для каждого проекта я вставляю процентное_значение с динамически созданным TextBoxes
(Сумма всех процент_значений равна 100%). Формула для процента должна вычислять hours_for_project_per_day .
double hours_for_project_per_day = percentage_value * number_of_hours_per_day / 100;
В конце я Round
hours_for_project_per_day . Во многих случаях вычисления верны, но я получаю некоторые неправильные значения (из-за Rounding
) в случае, как это:
number_of_project = 5;
number_of_hours_per_day = 7;
percentage_value | project | (Math.Round)hours_for_project_per_day (double values)
-----------------|---------|------------------------------------------------------
30 | P1 | 2 (2,1)
17 | P2 | 1 (1,19)
18 | P3 | 1 (1,26)
20 | P4 | 1 (1,4)
15 | P5 | 1 (1,05)
-------------------------------------------
sum 100 | 5 | 6 (instead 7)
Мой вопрос: Могу ли я сделать это другим способом или просто проверьте, если
if(sum_hours_for_project_per_day != number_of_hours_per_day)
и найдите hours_for_project_per_day с максимальным десятичным значением (в данном случае 1,4) и положите значение 2?
Надеюсь, ты знаешь, что я пытаюсь сделать.