2013-02-01 18 views
3

它將我的號碼連接到2111而不是5個。爲什麼?我試過使用parseInt沒有運氣。 res3 btw代表我正在執行的數據庫查詢。Javascript連接號碼,不加總

var dt_total_hours = 0; 

      dt_total_hours += res3.fieldByName(dt_cost_per_hour); 
      dt_total_hours += res3.fieldByName(dt_prod_dt_hours); 
      dt_total_hours += res3.fieldByName(dt_prod_rate); 
      dt_total_hours += res3.fieldByName(dt_cost_per_unit); 
      dt_total_hours += res3.fieldByName(dt_scrap_startup_cost); 
      dt_total_hours += res3.fieldByName(dt_labor_expense); 
      dt_total_hours += res3.fieldByName(dt_since_issues_first_noticed); 
      dt_total_hours += res3.fieldByName(dt_wo_for_maint); 
      dt_total_hours += res3.fieldByName(dt_investigation); 
      dt_total_hours += res3.fieldByName(dt_maint_made_bandaid); 
      dt_total_hours += res3.fieldByName(dt_parts_outsourcing); 
      dt_total_hours += res3.fieldByName(dt_get_equip_out_prod); 
      dt_total_hours += res3.fieldByName(dt_perm_repair); 
      dt_total_hours += res3.fieldByName(dt_equip_back_to_prod); 
      dt_total_hours += res3.fieldByName(dt_to_full_prod_speed); 
      dt_total_hours += res3.fieldByName(dt_other); 
+0

你有字符串,而不是數字。 – bfavaretto

+2

但是,您可以使用'+'將字符串轉換爲數字,因此'dt_total_hours + = +'1''會添加'1'。 –

+0

感謝Paul和Maerics ..它是Number方法與單引號的組合。很有幫助! – wowzuzz

回答

8

如果這些值是字符串,那麼它們將連接在一起,而不是數字地添加。

嘗試constructing a number from the string value

dt_total_hours += Number(res3.fieldByName(dt_cost_per_hour)); 
//    ^------ Force a number here instead of a string. 
+0

我會給這個鏡頭。 – wowzuzz

+0

此代碼給我一個錯誤。 – wowzuzz

+0

dt_total_hours + = Number(res3.fieldByName(dt_cost_per_hour)); – wowzuzz

1

是的,這是閱讀他們作爲字符串。我發現一個骯髒的,可怕的黑客把它們解釋爲數字是x += y並將其更改爲x += y/1.0(或/ 1整數)。通常做的伎倆。