好吧,這是事情。從DataTable
我讀number_of_project和number_of_hours_per_day(大部分時間每天5至7小時)。對於每個項目我插入percentage_value與動態創建TextBoxes
(總結所有百分比值是100%)。百分比公式必須計算hours_for_project_per_day。在c中使用百分比#
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? 希望你知道我在做什麼。
將100更改爲100.0:double hours_for_project_per_day = percentage_value * number_of_hours_per_day/100; – 2012-02-21 11:58:18
好吧,沒有得到這個事實,即分數的總和和它們的舍入值的總和是不同的。這只是數學:)我會建議將他們四捨五入到2,3或任何小數位(不會解決您的問題,但會減少它),或與您的第二個想法,這對我來說似乎可以。 – 2012-02-21 11:58:38
您是否正在使用可以查詢的數據庫? – Peter 2012-02-21 11:58:53