当我输入小数点机会时,它会返回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);
});
答案 0 :(得分:1)
您需要使用parseFloat来正确使用值,默认情况下这些值是字符串:
var chance = parseFloat($('#pay').val());
/*same for other values*/
要将利润四舍五入到2位小数,您可以在该数字上使用toFixed,再次将其转换回字符串。
3.123.toFixed(2) = "3.12"
答案 1 :(得分:1)
尝试使用parseFloat
:
var chance = parseFloat($("#Chance").val());
您还可以使用toFixed
指定小数位数。
修改强>
您需要修改chance
:
chance = parseFloat(chance);
你可以在这里看到这个:
答案 2 :(得分: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);