2014-01-28 2 views
0

У меня есть простые инструменты javascript, где отображается сумма процентного результата. Но я не могу получить правильное значение. Например:Не удается получить правильный процент (%) результат с помощью javascript

Это показывает ...

1000% 10 = 100 Это правильно.
Но 1000% 10,2 = Это все еще показывает 100. Это должно быть 102.

Javascript код:

<script> 
jQuery(document).ready(function() { 
    $('#pvalue1').change(function() { 
     var agentfee = parseInt($('#pvalue1').val(), 10) * parseInt($('#pvalue2').val(), 10)/100; 
     $('#pvalue3').val(agentfee); 
     var percentagereduce = parseInt($('#pvalue2').val(), 10) - 0.1; 
     var newvalue = parseInt($('#pvalue1').val(), 10) * percentagereduce/100; 
     $('#pvalue4').val(newvalue); 
     var takevalue1 = parseInt($('#pvalue3').val(), 10); 
     var takevalue2 = parseInt($('#pvalue4').val(), 10); 
     var finalvalue = takevalue1 - takevalue2; 
     $('#pvalue5').val(finalvalue); 
    }); 
    $('#pvalue2').change(function() { 
     var agentfee = parseInt($('#pvalue1').val(), 10) * parseInt($('#pvalue2').val(), 10)/100; 
     $('#pvalue3').val(agentfee); 
     var percentagereduce = parseInt($('#pvalue2').val(), 10) - 0.1; 
     var newvalue = parseInt($('#pvalue1').val(), 10) * percentagereduce/100; 
     $('#pvalue4').val(newvalue); 
     var takevalue1 = parseInt($('#pvalue3').val(), 10); 
     var takevalue2 = parseInt($('#pvalue4').val(), 10); 
     var finalvalue = takevalue1 - takevalue2; 
     $('#pvalue5').val(finalvalue); 
    }); 
}); 
</script> 

Html часть:

<table> 
    <tr> 
     <td>House Sale Price:</td> 
     <td>$ 
      <input name="pvalue1" onkeypress="validate(event)" value="" placeholder=" Enter Sale Price" style="width:140px;" type="number" value="<?=$pvalue1?>" id="pvalue1" size="20" class="required inputfield2" required> 
     </td> 
    </tr> 
    <tr> 
     <td>Rate quoted by agent:</td> 
     <td>&nbsp;&nbsp; 
      <input name="pvalue2" onkeypress="validate(event)" value="0" placeholder=" Percentage" style="width:140px;" type="number" value="<?=$pvalue2?>" id="pvalue2" size="20" class="required inputfield2" required>%</td> 
    </tr> 
</table> 
<input name="doRegister" type="submit" id="doRegister" value="Calculate" style="color:white;font-size:20px;" class="submitbutton"> 
<div id="resultbox2" class="resultbox1"> 
    <h2>Results</h2> 
    <table> 
     <tr> 
      <td>Agent Fees:</td> 
      <td>$ 
       <input name="pvalue3" value="0" placeholder="" type="number" value="<?=$pvalue3?>" id="pvalue3" size="10" class="resultfield"> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <div id='show-me' style='display:none'> 
        <input name="pvalue4" value="0" placeholder="" type="number" value="<?=$pvalue4?>" id="pvalue4" size="10" class="resultfield"> 
       </div> 
      </td> 
     </tr> 
     <tr> 
      <td>Reducing the rate the agent is charging by 0.1% will save you:</td> 
      <td>$ 
       <input name="pvalue5" value="0" placeholder="" type="number" value="<?=$pvalue5?>" id="pvalue5" size="10" class="resultfield"> 
      </td> 
     </tr> 
    </table> 
+0

Почему вы используете 'parseInt', если вы ожидаете нецелых чисел? – user2357112

+0

Вы должны использовать parseFloat вместо parseInt везде. –

+0

Некоторые комментарии помогут понять, что должен делать код. – PMF

ответ

2

parseInt только для целых чисел , вам нужно использовать parseFloat, если вы ожидаете целых чисел и поплавков.

+0

Карл Маркхэм, я проверяю его .. – Babu

+0

Oo. Круто. Работает. Благодарю. – Babu

+0

Нет проблем, рады помочь –

0

parseInt отбрасывает дробную часть ваших номеров, так как . и все, что после него не выглядит как часть целого числа. Вместо этого попробуйте parseFloat.

Смежные вопросы