네이버 환율 뿌리기 채택완료

4년 전 조회 2,481
Copy
$usd = $Data["USD"]["1"];
 echo $usd;
 

네이버환율을 php로 가져와서 echo문으로 찍어보니

1170.05 이렇게 잘가져오더라구요 이걸 

Copy
<script>

usdkrw = <?=$usd?>;

</script>
 

이와같이 처리하면 값이 119758.99% 이렇게 나오고

Copy
<script>

usdkrw = 1170.05;

</script>
 

직접적으로 숫자를 넣어주면 2.6% 이렇게 잘나옵니다 왜그런걸까요?

답변 3개

채택된 답변
+20 포인트

계산이 잘못되는건 문자 , 숫자 의 형변환이 안되서 그런건데

스크립트에서 

usdkrw = Number(<?=$usd?>);

이걸로 안되면

usdkrw = parseFloat(<?=$usd?>);

이렇게 해보세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변감사드립니다 하지만 echo 찍었을땐 1172 정확히 찍히는데 스크립트에서만 달라지네요 계산수식에 들어가면서 바껴서 그런지 모르겠네요

댓글을 작성하려면 로그인이 필요합니다.

Copy
<script> usdkrw = "<?=$usd?>"; </script>

따옴표?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

NAN% 표시되네요 ㅠ

댓글을 작성하려면 로그인이 필요합니다.

Copy
<script>
usdkrw = Number(<?=$usd?>);
</script>

로 해보세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

ㅠㅠ동일합니다 php쪽에서도 number_format으로 해줘도 같네요 값은 같나봐요

usdkrw = 1172;
window.setInterval(function(){
oTable.rows().invalidate();
oTable.draw();
$.get("https://api.binance.com/api/v3/ticker/price", function(data) {
// console.log(data);
data.forEach(e => {
if (e.symbol.slice(-4, e.symbol.length) == "USDT") {
// console.log(e.symbol.slice(0, -4), e.symbol.slice(-4, e.symbol.length));
var symbol = e.symbol.slice(0, -4);
var binance_price = parseFloat(e.price)*usdkrw;
var upbit_price = $("#money_"+symbol).attr("price");
// console.log(upbit_price);
$("#icon_"+symbol).text( (Math.round((upbit_price-binance_price)/binance_price * 10000 )/100).toFixed(2).toLocaleString()+"%" );
if ((upbit_price-binance_price)/binance_price > 0) {
$("#icon_"+symbol).css({"color": "#e21616"});;
}
else if ((upbit_price-binance_price)/binance_price < 0) {
$("#icon_"+symbol).css({"color": "#162fe2"});;
}
else {
$("#icon_"+symbol).css({"color": "#000"});;
}

}
});
});

해당 값입니다 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고