2014-10-12 52 views
-1

所以我一直认为我做错了。但jQuery可以读取小数?我的第一个文本框必须将输入乘以.10,第二个是.05。但我只得到1作为最终结果。我该如何解决它?双波浪号(~~)运算符删除数字的小数部分

<!DOCTYPE html> 
<head> 
     <title>Test</title> 
     <script src="../js/jquery-1.11.1.min.js"></script> 
<head> 

<body> 

     <input id="first" type="text" /> 
<script> 
     $('#first').on('change', function() { 
       $(this).val($(this).val() * .10); 
     compute(); 
     }); 
</script> 

     <input id="second" type="text" /> 
<script> 
     $('#second').on('change', function() { 
       $(this).val($(this).val() * .05); 
     compute(); 
     }); 
</script> 

<script> 
function compute() { 
    var first = ~~$('#first').val(); 
    var second = ~~$('#second').val(); 
    var result = $('#result'); 
    var grade = first + second; 
    result.val(grade); 
} 
</script> 

     <input id="result" type="text" readonly /> 
</body> 

</html> 
+1

显示的代码,否则你会被严重downvoted。 – 2014-10-12 06:28:29

+1

'〜'运算符只能用于整数。如果你给它一个分数,它会忽略分数。如果你想保留分数,你为什么要用'~~'? – Barmar 2014-10-12 06:36:05

+0

对不起,但我对JS没有深入的了解。我应该用什么来保持小数? – 2014-10-12 06:38:39

回答

0

我相信你想改变计算()这样的:

function compute() { 
    var first = parseFloat($('#first').val()); 
    var second = parseFloat($('#second').val()); 
    var result = $('#result'); 
    var grade = first + second; 
    result.val(grade); 
} 
+0

谢谢你。这工作得很好。感谢大家谁招待我的问题。祝你今天愉快! – 2014-10-12 06:44:56