А почему при следующем if sum вновь сбрасывается на 2200?
case 'ems':
var weight = +$('#weight').val();
var sum = ems_price;
if(weight > 0.4 && weight <= 1){
for (var i= 50; i< weight*100; i++) {
sum += 20;
};
price.innerHTML = sum;
};
if(weight => 1 && weight <= 2){
for (var i = 100; i< weight * 100; i++) {
sum += 18;
};
price.innerHTML = sum;
};
break;