2012-07-25 3 views
0

아침, jQuery를 사용하여 일부 합계를 추가하는 데 문제가 있습니다. 내가 전달하고jquery 함께 가격 추가

합니다 ...이에 다음

  • 가격 - 600.00
  • 배송 - 나는 다음과 같은 결과를 얻고 그러나 4.05

...

소계 = 600
product 배송 = 4.05
orderTotal = 4.05600

$.each(result, function (index, res) { 
       var price = 600.00; //res.productPrice; 

       var subTotal = res.itemQty * price; 
       var orderTotal = res.productShipping + subTotal; 

       new_record = "<tr>" + 
          "<td class=\"totals\">Sub Total</td>" + 
          "<td>£" + subTotal + "</td>" + 
          "</tr>" + 
          "<tr>" + 
          "<td class=\"totals\">Shipping</td>" + 
          "<td>£" + res.productShipping + "</td>" + 
          "</tr>" + 
          "<tr>" + 
          "<td class=\"totals\">Order Total</td>" + 
          "<td>£" + orderTotal + "</td>" + 
          "</tr>"; 

       $('#orderTotals').append(new_record); 

나는이 항목을 추가 내 jQuery를 몇 가지 문제가있을 수 있습니다,하지만 내가 그것을 해결할 수있는 느낌이 듭니다. 누군가 내가 잘못 가고있는 곳을 비춰 줄 수 있겠습니까?

res는 webservice 호출에서 사용하는 응답입니다.

많은 감사.

+1

문자열 연결을 사용하는 your'e처럼 보입니다 ... – Onheiron

답변

5

+은 문자열을 결합하고 번호를 함께 추가합니다. concatentation을 얻는 동안 res.productShipping이 문자열이라고 가정 할 수 있습니다.

따라서 최대 추가하기 전에 float로 구문 분석 :

var orderTotal = parseFloat(res.productShipping) + subTotal; 
+0

멋지다. 훌륭한 작품. 소계는 어때요? 그 가격에 .00을 제거하는 것 같습니다. – thatuxguy

+0

'subTotal'이 숫자 인 경우 끝에'.toFixed (2)'를 사용하여 항상 소수점 이하 2 자리로 서식을 지정할 수 있어야합니다. – Jamiec

1

ordertotal을 생성 할 때 res.productShippingparseInt() 또는 parsedouble() (또는 이와 유사한 것)으로 배치 했습니까?

숫자를 함께 추가하는 대신 문자열을 함께 추가하려고합니다. 따라서이를 연결하는 것처럼 들립니다.

1

이 시도 :

var orderTotal = parseFloat(res.productShipping) + parseFloat(subTotal); 
0

당신은으로 parseInt를 사용하여 숫자로 가격을 변환 한 후 계산을 수행해야합니다.