2012-12-11 2 views
1

$10.50과 같은 문자열을 가질 수 있으며 자바 스크립트에서 수학을 수행 할 수 있습니까? 이 사이트에서 답변을 찾을 수 없습니다.통화/달러 기호가있는 문자열의 수학

JSFIDDLE

HTML :

<p id="cost">$10.50</p> 
--- 
<div id="output"></div> 

자바 스크립트 :

$('#output').html($('#cost').html()/2);​ 

출력 : 당신은 거기에 수학을 할 수

NaN 
+0

@AndrewWhitaker 제 JSFIDDLE 링크에있는 내용을 정확하게 시도했습니다. – Norse

답변

1

인 경우 달러 기호를 제거합니다. 일반적으로 첫 번째 위치에 있기 때문에 문자열 값에 .substring(1)을 간단하게 사용할 수 있습니다.

$('#output').html($('#cost').html().substring(1)/2);​ 
+0

매우 도움이 됨 감사합니다. – Norse

0

당신은 같은 것을 할 수있는 :

<p id="cost" data-value="1050" data-currency="$">$10.50</p> 
--- 
<div id="output"></div> 


var el = $("#cost"); 
$('#output').html(el.data("currency") + (el.data("value")/2/100));​ 

http://jsfiddle.net/QkCyM/5/

0

없음을하지만, 왜 보관하지 별도로 '$'

<p>$<span id="cost">10.50</span></p> 

또는 당신은 근래에 문자열을 파싱하고 '$'를 제거하십시오.

0

아니요. 문자열에 대해 수학을 수행 할 수 없습니다. 그렇게하면 JavaScript는 암시 적 유형 변환을 시도하지만 숫자로 시작하지 않는 문자열의 경우 오류가 발생하여 NaN이됩니다.

먼저 달러 기호를 제거한 다음 (예 : .slice(1)) parseFloat을 사용하여 번호를 가져옵니다. 이제 나누기를 수행 한 다음 .toFixed(2)을 사용하여 다시 문자열로 변환하여 출력하십시오. 업데이트 된 바이올린 : http://jsfiddle.net/QkCyM/7/.

그리고 What Every Programmer Should Know About Floating-Point Arithmetic을 잊지 마세요.