Javascript jQuery-奇怪的bug,其中100.00

Javascript jQuery-奇怪的bug,其中100.00,javascript,numbers,Javascript,Numbers,jQuery/JavaScript有一个奇怪的问题。我正在使用以下代码: var minimumPercent = $('.donationTextBox').val(); $('.donationTextBox').change(function() { var donationAmount = parseFloat($('.donationTextBox').val()); donationAmount = donationAmount.toFixed(2); i

jQuery/JavaScript有一个奇怪的问题。我正在使用以下代码:

var minimumPercent = $('.donationTextBox').val();

$('.donationTextBox').change(function() {
    var donationAmount = parseFloat($('.donationTextBox').val());
    donationAmount = donationAmount.toFixed(2);

    if(donationAmount < minimumPercent || donationAmount == "NaN") {
        $('.donationTextBox').val(minimumPercent);
    }
    else {
        $('.donationTextBox').val(donationAmount);
    }
});
我编写的这段代码更改了输入框文本的值,因此用户输入的值是货币格式的,例如:96.49,并进行检查以确保它不低于minimumPercent中的金额。如果是,那么它会将值更改为minimumPercent。 我遇到的问题是,假设minimumPercent保持2.50,用户输入100.00,出于某种奇怪的原因,它假设100.00小于2.50。尽管如此,200.00还可以


有什么想法吗?谢谢你的帮助

设置minimumPercent时,请尝试使用ParseFloat

var minimumPercent = ParseFloat($('.donationTextBox').val());
我认为is引擎将字符串与浮点进行比较,从而将浮点转换回字符串,当您执行100.00<2.50=true时,按字母顺序从左到右进行比较


Mike

设置minimumPercent时,请尝试使用ParseFloat

var minimumPercent = ParseFloat($('.donationTextBox').val());
我认为is引擎将字符串与浮点进行比较,从而将浮点转换回字符串,当您执行100.00<2.50=true时,按字母顺序从左到右进行比较


Mike

和toFixed会将浮点值转换为字符串,因此在比较时始终使用浮点值

var minimumPercent = parseFloat($('.donationTextBox').val());

$('.donationTextBox').change(function() {
    var donationAmount = parseFloat($('.donationTextBox').val());

    if(donationAmount < minimumPercent || donationAmount == "NaN") {
        $('.donationTextBox').val(minimumPercent.toFixed(2));
    }
    else {
        $('.donationTextBox').val(donationAmount.toFixed(2));
    }
});

同时,使用toFixed将浮点值转换为字符串,因此为了进行比较,始终使用浮点值

var minimumPercent = parseFloat($('.donationTextBox').val());

$('.donationTextBox').change(function() {
    var donationAmount = parseFloat($('.donationTextBox').val());

    if(donationAmount < minimumPercent || donationAmount == "NaN") {
        $('.donationTextBox').val(minimumPercent.toFixed(2));
    }
    else {
        $('.donationTextBox').val(donationAmount.toFixed(2));
    }
});

这听起来确实像是在比较字符串值。是的,完全忘记了这个变量。谢谢!:这听起来确实像是在比较字符串值。是的,完全忘记了这个变量。谢谢!: