2009-11-05 6 views
2
var price  = $('#addprice').val(); 
var pass  = $('#pass').val(); 
var total  = $('#totalprice').attr('value') 
var left  = $('#leftquota').attr('value') 
var balance = $('#balance').attr('value') 
var tprice = total + price; // total price 
var bprice = balance + price; // balance price 
var unitprice = bprice/left; // unit price 

$('#totalprice').text(tprice); 
$('#balance').text(bprice); 
$('#unitprice').text(unitprice); 

JQuery는 전체, 왼쪽, 균형, tprice, bprice, unitprice 등을 처리합니다. 실제로는 문자열이 아닌 소수가 있습니다. parseInt()를 적용하면 정수가되고 원하는 것은 아닙니다. 산술 연산을 수행하는 방법? 피연산자는 십진수입니다.JQuery에서 산술 연산을 수행하는 방법은 무엇입니까?

저는 parseFloat()를 사용합니다. 그러나 그것은 동일합니다. var tprice = total + price의 연산; 문자 그대로 2 자리수 (문자열)를 함께 사용합니다.

$('#add_price').click(function(){ 
    var price=$('#addprice').val(); 
    var pass=$('#pass').val(); 
    var total=$('#totalprice').attr('value') 
     var left=$('#leftquota').attr('value') 
     var balance=$('#balance').attr('value') 
     total=parseFloat(total); 
     left=parseFloat(left); 
     balance=parseFloat(balance); 
     var tprice=total+price; 
     var bprice=balance+price; 
     var unitprice=bprice/left; 

     $('#totalprice').text(tprice); 
     $('#balance').text(bprice); 
     $('#unitprice').text(unitprice); 
+4

그것은 jQuery를 문자열로 치료되지 않는, 그것은 자바 스크립트 문자열로 치료합니다. jQuery는 값만 가져옵니다. Javascript는 arimethics를, jQuery는 자바 스크립트의 맨 위에있는 라이브러리입니다. –

+0

숫자 및 산술 연산 결과의 초기 문자열 값을 제공하십시오. – Kamarey

+0

자바 스크립트가 십진수를 실제로하지 않는다는 것을 기억하십시오. 예 : 0.06 + 0.01 = 0.699999999 –

답변

6

이 경우에 parseFloat를 사용할 수 있습니다. 그것은 float 값 사용의

예를 반환합니다

또 다른 옵션은 폼 요소에서 직접 번호를 읽을 수 있도록 jQuery를 확장하는 것이다
var tprice = parseFloat(total) + parseFloat(price); 
+0

이 문제는 해결되었습니다. 고맙습니다. – Steven

2

jQuery.fn.numVal = function() { 
    return parseFloat(this.val()) || 0; 
} 

    .... 

    var price=$('#addprice').numVal(); 
    var pass=$('#pass').numVal() 
0

사용에서는 parseFloat,에서는 parseInt, 아니면 그냥 문자열 앞에 숫자가 포함 된 경우 +을 입력하십시오.

var text = "123.456"; 
var number = +text; // now 'number' is Number, and not String 

또한 parseInt 또는 parseFloat보다 빠릅니다.

Number 객체를 사용하는 또 다른 방법 :

var text = "123.456"; 
var number = Number(text); 

그러나 이것은 가장 느린 방법입니다.

상세 정보 : http://www.jibbering.com/faq/faq_notes/type_convert.html#tcNumber

0

내가 너무 솔루션을 찾고있었습니다, 그리고 내가 나처럼 궁금 경우 사람에 작동하지 않습니다 여기에 질문 (심지어이 하나)를 많이보고, 여기 내 작업입니다 solutiuon : (그들은 문자열로) 모든 ID의 선택

$("#apport").keyup( 
function(){ 
var apport = parseFloat($("#apport").val()); 
var montant = parseFloat($("#montant-financer").val()); 
var moinmontant = parseFloat(montant) - parseFloat(apport);  
$("#montant-financer").val(moinmontant);  
} 
); 

가 입력

관련 문제