2017-05-18 10 views
0

私は、ユーザーが自分の通貨コンバーターでの量をひそかしたいどのように私はできる出力異なる通貨記号不思議でしたか?例えば、私はユーロ記号が出力されるように得ることができますどのように£20のユーロ値だった、新たな量の最終的な出力でユーロに£20を変換したい場合は?最終的な出力は、数字だけであり、私は最終的な値の量出力の前に通貨記号をしたいと私は、出力量のために、すべての通貨に対してこの操作を行う可能性がどのように思っていました。したがって、APIからライブレートをインポートしていますが、どのようにして換算レートをインポートできますか?通貨記号を追加できますか?最後に交換された値に通貨記号を出力するにはどうすればよいですか?

Codepen

JAVASCRIPT

// Fetch exchange rate data from api 
$.getJSON("https://api.fixer.io/latest?base=ZAR", function(data) { 
    var currencies = []; 
    $.each(data.rates, function(currency, rate) { 
    // Currency options dropdown menu 
    currencies.push("<option id='" + currency.toLowerCase() + "' value='" + rate + "' >" + currency + "</option>"); 
    }); 
    $(".currency-list").append(currencies); 
}) 

//Calculate and output the new amount 
function exchangeCurrency() { 
    var amount = $(".amount").val(); 
    var rateFrom = $(".currency-list")[0].value; 
    var rateTo = $(".currency-list")[1].value; 
    if (amount == undefined || rateFrom == "--Select--" || rateTo == "--Select--") { 
    $(".results").html("0"); 
    } else { 
    $(".results").html((amount * (rateTo * (1/rateFrom))).toFixed(2)); 
    } 
} 
+0

-8&oe = UTF-8&startIndex =&startPage = 1&safe = active&gfe_rd = cr&ei = cSgeWbLfDOzDXvCZgYAC&gws_rd = ssl)通貨記号のHTMLエンティティのリストを検索します。 [*ここ*](https://websitebuilders.com/tools/html-codes/currency/)。 – RobG

答えて

0

あなたは国際オブジェクトのサポートが提供されていますのtoLocaleStringを使用できますが、あなたはまた、小さなルックアップテーブルを使用することができます(たとえば、 {euro:'&euro;',pound:'&pound;', ...})シンボルおよびformat as money手動。

/* 
 
https://stackoverflow.com/questions/149055/how-can-i-format-numbers-as-money-in-javascript/149099#149099 
 
decimal_sep: character used as deciaml separtor, it defaults to '.' when omitted 
 
thousands_sep: char used as thousands separator, it defaults to ',' when omitted 
 
*/ 
 
Number.prototype.toMoney = function(decimals, decimal_sep, thousands_sep) 
 
{ 
 
    var n = this, 
 
    c = isNaN(decimals) ? 2 : Math.abs(decimals), 
 
    d = decimal_sep || '.', 
 
    t = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, 
 
    sign = (n < 0) ? '-' : '', 
 
    i = parseInt(n = Math.abs(n).toFixed(c)) + '', 
 
    j = ((j = i.length) > 3) ? j % 3 : 0; 
 
    return sign + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ''); 
 
} 
 

 
var currencySymbol = {euro:'&euro;',pound:'&pound;',dollar:'$'}; 
 

 
var amount = 123546.23 
 
document.getElementById('moneyAmount0').innerHTML = currencySymbol.euro + amount.toMoney(); 
 
document.getElementById('moneyAmount1').innerHTML = currencySymbol.euro + amount.toMoney(2,',','.');
<p>Amount (English): <span id="moneyAmount0"></span></p> 
 
<p>Amount (European): <span id="moneyAmount1"></span></p>

のtoLocaleStringの結果はまだ大部分は実装依存であり、あなたはオプションのサポートが利用できない場合、それは背面に落ちるかわからないことに注意してください。

.toMoney機能はHow can I format numbers as money in JavaScript?

2

あなたはここにLocalestring

var number = 123456.789; 
 
    
 
// request a currency format 
 
console.log(number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' })); // → 123.456,79 € 
 

 

 
var currency = document.getElementById('currency'); 
 

 
var Euro = number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }); 
 

 
currency.innerHTML = Euro;
<p id='currency'></p>

を使用することができ、私のjsfiddleです。

https://jsfiddle.net/646m7905/

+0

jsfiddeはありますか? –

+0

https://jsfiddle.net/646m7905/ –

+0

ここで実行可能なスニペットを使用することができますか? – RobG

0

への最高の定格の答えからであるあなたが(など、「ドル」、「ポンド」、すなわち、「ユーロ」)通貨名を取得する方法はありますか?もしそうなら、ちょうどこの操作を行います。あなたは$42または£6.38のようなものを与える

currencySymbols = {euros:'&euro;',dollars:'$',pounds:'&pound;'}; 
finalText = currencySymbols[currencyText.toLowerCase()] + currencyValue; 

。それは、(https://www.google.com.au/search?q=HTML+entities+currency+symbol&rls=com.microsoft:en-us&ie=UTF [*検索*]の多くを取ることはありません

関連する問題