2011-12-13 2 views
0

을 찾으려면 도움이 필요합니다. 주문을 발송하는 데 필요한 각 상자의 최소 수를 표시하는 방법을 알아 내려고합니다. 나는 대부분의 일을했으나 여전히 캔트는 프로그램을 끝내는 것처럼 보입니다. 여기에 지금까지 JS에있는 내용은 다음과 같습니다최소 주문 번호

var calculate_boxes = function() { 

    var dvds = parseFloat($("dvds").value); 

    //Be sure the value entered is a positive number. 

    var cave = dvds/24; 
    dvds = dvds % 24;  

    var bakers = dvds/13; 
    dvds = dvds % 13; 

    var dimes = dvds/10; 
    dvds = dvds % 10; 

    var quads = dvds/10; 
    dvds = dvds % 10; 

    var twins = dvds/4; 
    dvds = dvds % 4; 

    var minis = dvds/1; 
    dvds = dvds % 1;  

     cave = parseInt($("cave").value); 
    bakers = parseInt($("bakers").value); 
    dimes = parseInt($("dimes").value); 
    quads = parseInt($("quads").value); 
    twins = parseInt($("twins").value); 
    minis = parseInt($("minis").value); 

} 
+0

직면 한 문제/질문은 무엇입니까? 작동하지 않는 것은 무엇입니까? –

+0

jQuery 객체의 마지막 블록으로 무엇을하고 있습니까? '$ ("cave")'는 모든 ''요소를 선택하려고 시도하고 있습니다. 다른 사람들도 마찬가지입니다. 또한 jQuery 객체에는 'value' 속성이 없습니다. 그러나 val() 메소드가 있습니다. Pekka가 물었 듯이, 구체적으로 작동하지 않는 것은 무엇입니까? 좀 더 문맥을주세요. – FishBasketGordo

답변

1

당신은 cave = parseInt($("cave").value); 같은 값으로 그 변수를 덮어 쓰기 기능 이후에 다음 var cave = dvds/24; 같은 변수를 설정하지만거야 - 난 당신이하려고하는 것 같은데요 cave 변수에 현재 저장되어있는 10 진수 값을 정수로 변환하지만 jQuery 코드 $("cave").value을 사용하여 코드가 실제로하는 일은 태그 이름이 "동굴"인 요소를 선택하려고 시도하는 것입니다 (예 : <cave>) 그 값을 parseInt으로 전달하십시오.

JavaScript에서는 Math 메서드 중 하나를 사용하여 10 진수를 정수로 변환 할 수 있습니다. 사용 방법은 반올림할지, 아래로할지, 가장 가까운 정수로할지에 따라 다릅니다.

귀하의 현재 목적을 위해 항상 내림하고 싶으므로 Math.floor()을 사용하십시오. 함수의 끝에 별도의 작업으로 그것을 할 필요가 없습니다, 단지 즉시 수행

또한
var cave = Math.floor(dvds/24); 
dvds %= 24; // note that dvds %= 24 is equivalent to dvds = dvds % 24 

var bakers = Math.floor(dvds/13); 
dvds %= 13; 

// etc 

, 아마도 당신의 "쿼드"4 분할해야하고 "쌍둥이"2 분할한다

또한 처음에는 기능이 시작될 때 parseFloat()으로 시작하는 이유를 알지 못합니다. DVD의 분수를 주문할 수는 없습니다. 현재 누락 된 양수 만 유효성 검사 이외에 정수가 입력되었는지 확인해야합니다.

또한 "minis"에 대한 최종 계산은 1로 무의미한 나누기를 수행합니다. 그 단계에서 dvds를 남기지 않고 minis = dvds을 알고 있으므로 다음 줄에서 무의미한 모듈로 연산이 필요하지 않습니다.

위의 변경 사항을 적용하고 parseInt() 항목을 제거하면 목표에 훨씬 가까워 야합니다. 시도해보고 조금만 실험 해보고 여전히 작동하지 않으면 다시 시도하십시오.