-1

当我输入一个小数作为机会时,它会返回 NaN 作为薪酬和利润。知道为什么吗?另外,我需要做什么才能将利润四舍五入到小数点后第二位。

谢谢。

    $(document).ready(function(){

        function updateValues() {
            // Grab all the value just incase they're needed.
            var chance = $('#chance').val();
            var bet = $('#bet').val();
            var pay = $('#pay').val();
            var profit = $('#profit').val();

            // Calculate the new payout.
            var remainder = 101 - chance;
            pay = Math.floor((992/(chance+0.5)) *100)/100;


            // Calculate the new profit.
            profit = bet*pay-bet;



            // Set the new input values.
            $('#chance').val(chance);
            $('#bet').val(bet);
            $('#pay').val(pay);
            $('#profit').val(profit);
        }


        $('#chance').keyup(updateValues);
        $('#bet').keyup(updateValues);
        $('#pay').keyup(updateValues);
        $('#profit').keyup(updateValues);


    });
4

3 回答 3

1

您需要使用 parseFloat 正确处理这些值,默认情况下是字符串:

var chance = parseFloat($('#pay').val());
/*same for other values*/

要将利润四舍五入到小数点后两位,您可以在该数字上使用 toFixed,它再次将其转换回字符串。

3.123.toFixed(2) = "3.12"
于 2013-06-26T07:28:46.567 回答
1

尝试使用parseFloat

var chance = parseFloat($("#Chance").val());

您还可以使用toFixed来指定小数位数。

编辑

您需要修改chance

chance = parseFloat(chance);

你可以在这里看到这个工作:

http://jsfiddle.net/U8bpX/

于 2013-06-26T07:28:53.767 回答
1

首先使用 parseFloat 或(如果您不需要浮点值,则为 parseInt)。

 function updateValues() {

        var chance = parseFloat($('#chance').val());
        var bet = parseFloat($('#bet').val());
        var pay = parseFloat($('#pay').val());
        var profit = parseFloat($('#profit').val());

        // Calculate the new payout.
        var remainder = 101 - chance;
        pay = Math.floor((992/(chance+0.5)) *100)/100;


    }

Also what would I need to do to round profit to the second decimal.

you can do this:
              profit = bet*pay-bet;
              profit = profit.toFixed(2);
于 2013-06-26T07:41:27.547 回答