我正在使用系统的结算部分,并使用javascript在我的TextBox
中放置一个事件,我有两个文本框。首先是cashonhand
和change
文本框。但我想知道为什么两个文本框之间的比较没有给我正确的答案。这是我的代码:
$(document).ready(function () {
$(document).on('click', '.btn-pay-bill', function () {
var cash = parseFloat(Number($('.cashonhand').val())).toFixed(2);
var amtdue = parseFloat(Number($('.amtdue').text())).toFixed(2);
if (cash <= amtdue) {
alert(cash + ' ' + amtdue + ' ' +"Insufficient Cash!!!");
return false;
}
if (cash >= amtdue) {
return true;
}
return false;
});
那我在这里错过了什么?这是我将100,000
与78,200.00
进行比较时的输出:
答案 0 :(得分:4)
您按字母顺序而非数字进行比较。
请注意.toFixed()
returns a string:
<强>返回强>
不使用指数表示法且在小数位后面具有正好位数位的数字的字符串表示。
您希望在致电.toFixed()
var cash = parseFloat(Number($('.cashonhand').val()));
var amtdue = parseFloat(Number($('.amtdue').text()));
if (cash <= amtdue) {
alert(cash.toFixed(2) + ' ' + amtdue.toFixed(2) + ' ' +"Insufficient Cash!!!");
return false;
}
您只需在显示 UI中的号码时调用.toFixed()
,或创建值的单独字符串版本,例如sCash
和{{1}或者别的什么。