我正在比较javascript中的两个数字。但这并不完美 下面是我的代码
function selling_onchange(){
var mrp = $('#mrp').val();
var id = $('#selling_price').val();
if(mrp > id){
alert("mrp is greater");
}else{
alert("selling price is greater");
}
}
如果我给的mrp是100,销售价格是20,那么它给出的警报也要比销售价格更大。 如果有人知道解决方案,那就请帮忙。
答案 0 :(得分:2)
jQuery eval()函数以字符串数据类型返回。因此,您需要将字符串转换为整数或浮点值。
您可以使用以下功能。
var mrp = parseInt($('#mrp').val());
var id = paeseInt($('#selling_price').val());
类似地,
var mrp = parseFloat($('#mrp').val());
var id = paeseFloat($('#selling_price').val());
使用parseFloat()处理浮点数。
答案 1 :(得分:1)
Javascript无法自动识别数字数据类型,您需要将任何值转换为整数或浮点数
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main"> <input type="text" id="calculation"> </div>
<hr>
<div class="main"> <input type="text" id="query"> </div>
<div>
<table>
<tr>
<td><button class="1class" value="1">1</button> <button class="1class" value="2">2</button> <button value="3">3</button> <button value="4">4</button> </td>
</tr>
</table>
</div>
和parseInt()
有两个功能
parseFloat()
函数解析一个字符串并返回一个整数。
parseInt()
函数解析一个字符串并返回一个浮点数。
parseFloat()
函数将object参数转换为一个数字, 代表对象的值。
Number()
function compare() {
var mrp = parseFloat($('#mrp').val());
var id = parseFloat($('#selling_price').val());
if (mrp > id) {
$('#lbStatus').html("mrp is greater");
} else {
$('#lbStatus').html("selling price is greater");
}
};
答案 2 :(得分:0)
当您使用.val()
方法获取元素的值时,该值具有String
类型,并且在比较这些值时,需要将其显式转换为数字类型。
使用+
var mrp = +($('#mrp').val());
var id = +($('#selling_price').val());
使用parseInt()
var mrp = parseInt($('#mrp').val(), 10); //it is always a good practice to specify the redix
var id = parseInt($('#selling_price').val(), 10);
使用parseFloat()(如果您的值可能包含浮点数)
var mrp = parseFloat($('#mrp').val());
var id = parseFloat($('#selling_price').val());
使用号码()
var mrp = Number($('#mrp').val());
var id = Number($('#selling_price').val());