2017-02-23 115 views
2

我想根據工資乘以小時計算出最終價格。如何根據時間和工資計算價格計算

這是我的代碼 爲什麼如果時間是02:30:00和工資:14美元是我的總共2?

TimeSpan duration = TimeSpan.Parse("02:30:00"); 
int wage = 14; 
var result = (duration.Hours + (duration.Minutes/60) * wage); 
+1

請閱讀[MCVE]關於發佈代碼的指導。我編輯了帖子的示例以顯示一個選項 - 同時它清楚地表明完全不相關的[tag:model-view-controller]在帖子中根本沒有被調用([tag:asp.net-mvc])稍微好一點,但不是真的需要)。 –

+1

備註:類似問題的標準重複之一 - http://stackoverflow.com/questions/9288904/division-returns-zero回答你的問題。 –

回答

3

首先,表達實際上評價爲:

duration.Hours + ((duration.Minutes/60) * cleaner.Price) 

其次,你正在做的整數除法,所以30/60將導致0,讓你具有值2即時間部分。

要解決這個問題,你可以像下面的東西:

(duration.Hours + ((decimal)duration.Minutes/60)) * 14; 

或者,你可以跳過此組件的方式計算,只需要使用TotalHours屬性來代替:

duration.TotalHours * 14 
+0

完美的作品!謝謝! –