2012-07-06 5 views
-3

우리는 많은 비용의 도서관을 열거하고 있습니다. 일부는 10 % (GST) 세금이 부과되며, 일부는 맞춤 #. ## % 세금이 있습니다.자바 스크립트로 백분율을 계산할 수 있습니까?

$ 123.45 10 % TOTAL : $ 135.8

$ 123.45 0 % TOTAL : $ 123.45

$ 123.45 7 % TOTAL : $ 132.10

는 이러한 결과를 인쇄하려면 다음과 같이

결과를 인쇄한다 우리 CMS는 메타 데이터 값과 키워드를 사용합니다 :

%asset_metadata_Amount% %asset_metadata_GST% %asset_metadata_Custom_Tax% 

'_GST'의 값이 비어 있으면 '_Custom_Tax'가 인쇄되고 둘 다 비어 있으면 계산이 필요 없습니다.

나는 그래서 ID가 쿼리를하는 데 도움 알고

좀 설명을 제공해야
<span id="row_1"><span id="abc">%asset_metadata_Amount%</span> <span id="def">%asset_metadata_GST%</span> <span id="xyz">%asset_metadata_Custom_Tax%</span> <span id="total"> # </span></span> 

는 모두 사과; 곱셈을 수행하기 위해 키워드를 사용하여 함수를 실행할 수 있습니까? 즉. 코드는 다음과 같이 작성 될 수 있습니다

total = %_Amout% * 1.%_GST% 

또는 '%'기호가 스크립트를 휴지통으로 처리합니까?

+0

뭔가를 물어 보시겠습니까? 아니면 우리가 원하는 작업에 대한 사양을 제공하고 있습니까? – lanzz

+7

예, 자바 스크립트는 비율을 계산할 수 있습니다. 해봐야 해. 곱셈이라고합니다. –

+0

@lanzz 예, 죄송합니다. 마지막으로 나는 누군가가 와서 공손한 것을 편집하고 그것을 코어에서 제거한 게시물에서 예의였습니다. 나는 아직도 나의 에티켓을 배웠다, 사과. –

답변

3

자바 스크립트 :

$(function() { 
    var rows = $(".row"); 
    rows.each(function(index, row) { 
     var amount = parseFloat($(row).children(".amount").text()); 
     var gst = parseFloat($(row).children(".gst").text()); 
     var customTax = parseFloat($(row).children(".customTax ").text()); 
     var tax = (isNaN(gst) ? (!isNaN(customTax) ? customTax : 0) : gst); 
     var totalSpan = $(row).children(".total"); 
     console.log("Amount: ", amount); 
     console.log("Tax: ", tax); 
     totalSpan.html("Total: " + (amount + amount * (isNaN(tax) ? 0 : tax)/100).toFixed(2)); 
    }); 
});​ 

HTML : http://jsfiddle.net/FHMrW/1/

참고 : 나는 지원하기 위해, class 속성으로 id의를 교체 한 나는 또한 jsfiddle로이 게시 한

<span id="row_1" class="row"> 
    <span class="amount">123.45</span> 
    <span class="gst"></span> 
    <span class="customTax"></span> 
    <span class="total"><!-- # --></span> 
</span>​ 

여러 행.

편집 : @ t-j-crowder의 의견에 따라 코드를 여기에 입력하고 toFixed을 추가했습니다.

+2

관련 코드 및 설명 **을 응답 자체에 항상 ** 포함하고 링크하지 마십시오. 질문과 마찬가지로 : http://meta.stackexchange.com/questions/118392/add-stack-overfow-faq-entry-or-similar-for-putting-code-in-thequestion –

+0

@Vidar S. Ramdal 와우, 인상적이다. 고맙습니다! '합계'를 소수점 이하 두 자리로 제한 할 수 있습니까? –

+0

@ T.J.Crowder - 알림을 보내 주셔서 감사합니다. 응답 코드에 'toFixed (2)'를 사용하여 –

3

자바 스크립트로 백분율을 계산할 수 있습니까?

수학 연산자를 사용하는 모든 언어에서 백분율을 계산할 수 있습니다. 귀하의 경우, 샘플 마크 업 사용 : 이제

var baseAmount, taxRate, tax, total; 

// Get the base amount, stripping off non-floating-point-number chars, 
// convert to number 
baseAmount = parseFloat($("#abc").text().replace(/[^0-9\.]/, "")); 

// Same with the tax rate, divide by 100 
taxRate = parseFloat($("#def").text().replace(/[^0-9\.]/, ""))/100; 

// Tax is baseAmount * taxRate 
tax = baseAmount * taxRate; 

// Add to base to get total 
total = baseAmount + tax; 

을, 당신은 (예를 들어, 0.1 + 0.2 = 0.30000000000000004)의 일부 부정확성을 허용 IEEE-754 부동 소수점 숫자의 한계, 조심해야하지만, 당신이 할 경우 일부 Math.round 물건을 당신은 대부분 괜찮을 것입니다.

관련 문제