2012-07-06 110 views
-3

我們列出了一大筆費用。有些人有10%(GST)稅,有些人有自定義#。##%稅。javascript可以計算百分比嗎?

結果應打印如下:

$ 123.45 10%總計:$ 135.8

$ 123.45 0%總計:$ 123.45

$ 123.45 7%總計:$ 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 2012-07-06 12:15:18

+7

是的,Javascript可以計算百分比。你應該試試。這就是所謂的乘法。 – 2012-07-06 12:16:16

+0

@lanzz是的,對不起,上次我在一個帖子裏彬彬有禮,一個人來了,編輯了禮貌,並將其剝離到核心。我仍然在學習我的禮儀,表示歉意。 – 2012-07-06 12:21:28

回答

3

的JavaScript:

$(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:

<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>​ 

我也貼出這是一個的jsfiddle:http://jsfiddle.net/FHMrW/1/

注:我曾與class屬性取代了id S,支持多行。

編輯:包括在這裏的代碼,根據@ t-j-crowder的評論,並且總共添加了toFixed

+2

總是在答案本身**中包含相關的代碼和解釋**,不要只是鏈接。就像提問:http://meta.stackexchange.com/questions/118392/add-stack-overfow-faq-entry-or-similar-forputing-code-in-the-question – 2012-07-06 12:34:33

+0

@ Vidar S. Ramdal哇,這很令人印象深刻。謝謝!是否可以將「總計」限制爲只有兩位小數? – 2012-07-06 12:35:24

+0

@ T.J.Crowder - 感謝提醒,我已將代碼包含在我的回答中 – 2012-07-06 12:57:38

3

javascript可以計算百分比嗎?

任何使用數學運算符的語言都可以計算百分比。在你的情況下,使用您的樣品標記:

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; 

現在,你要小心了IEEE-754浮點數的侷限性,因而能夠在一些不精確(0.1 + 0.2 = 0.30000000000000004,例如),但如果你這樣做一些Math.round東西,你應該大部分罰款。