자바스크립트 환율변환 질문입니다.
관련링크
본문
API로 환율을 가져와서 상품가격 옆에 달러표시를 하려는데요.
아래 코드의 경우 1000원을 입력하면 1$표시가 됩니다.
제가 원하는 것은 소수점까지 정확하게 떨어지는것을 원하는데요.
var num = Math.ceil(old.match(/\d+/)[0]/data.rates[cur]);
밑에 코드에는 ceil함수가 넣어졌는데요. 어떻게 수정을 해야 달러로 소수점 2자리까지 변환이 되는지요.
num = num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g,
num에 들어간 정규표현식의 경우 어떤용도로 되어있는걸까요?
밑에는 예제 코드 주소입니다.
https://jsfiddle.net/ncia/fh5rwj79/
<br><span class='zex' cur='KRW'>1000</span>
<script src='//code.jquery.com/jquery.min.js'></script>
<script>
if($(".zex")[0]){
$.getJSON('https://api.exchangeratesapi.io/latest?base=USD')
.done(function(data){
$('.zex').each(function() {
var cur = $(this).attr('cur');
if( cur == undefined ) return;
var old = $(this).text();
var num = Math.ceil(old.match(/\d+/)[0]/data.rates[cur]);
num = num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
$(this).html( old + ' (약 '+ num +'$)');
})
})
}
</script>
:: 추가 코멘트
다국어 쇼핑몰 구축 힘드네요 ㅠㅠ
위 의당도신님이 결제 플러그인 페이팔과의 연동을 보고 쪽지를 보냈는데 연락이 되지 않아 직접 코드를 찾는중입니다.
아직 결제쪽은 기준결제 환율을 잡고 가는지 개념이 서질 않네요.
가장 이상적인 모양은 각나라별로 Location Currency Exchange화 시켜버리고 싶지만 그러려면 코어를 건드려야 할듯하고 수준에서 달러표시만 추가해주고 결제모듈과의 연동으로 타협을 보려합니다.
혹시 좋은 팁이 있으시면 알려주십시요.
작업 가능하신분 있으시면 쪽지 부탁드립니다.
!-->답변 1
프로그램은 하실중 아시는 분일텐데요.
아시다시피 ceil 은 가장 가까운 큰 정수로 변하게 해주죠
var num = Math.ceil(old.match(/\d+/)[0]/data.rates[cur]); << 이부분의 ceil 보다
정규식 부분이 더 중요한것 같아요. 위의 정규식은 숫자만 가져오게 하므로.
애당초 소수점이 나올수 없습니다.
한번 출력을 해보세요.]
소수점 , 음수까지 가져올 수 있는 정규식은 /[^-\.0-9]/g 같은 방식이 있습니다.