Javascript JS调试-var资金价值相差太远

Javascript JS调试-var资金价值相差太远,javascript,debugging,Javascript,Debugging,这是我写过的第一个JS程序,非常感谢您的帮助 我得到的资金价值远远不够。例如,如果您使用 运行=1,开始=5000,Bonus乘数=0和1之间的任何值 我通常得到的资金价值为5000500英镑。我已经把代码检查了好几个小时了,但还是弄不明白。在数字5000500中,5000来自var start,500来自var BETTIZE。我不知道它们是如何组合成一个数字的。请帮忙 var profit = 0; var runs = prompt("How many runs?"); var start

这是我写过的第一个JS程序,非常感谢您的帮助

我得到的资金价值远远不够。例如,如果您使用

运行=1,开始=5000,Bonus乘数=0和1之间的任何值

我通常得到的资金价值为5000500英镑。我已经把代码检查了好几个小时了,但还是弄不明白。在数字5000500中,5000来自var start,500来自var BETTIZE。我不知道它们是如何组合成一个数字的。请帮忙

var profit = 0;
var runs = prompt("How many runs?");
var start = prompt("Starting chips?");
var bonusMultiplier = prompt("Bonus? Use decimal.");
var inAmt = (start/(1+bonusMultiplier));
var bonusValue = bonusMultiplier * inAmt;


function simulation(){

var bankroll = start;


function makeBet(){
if (bankroll === 0){
    console.log("BUSTO IN " + hands + "HANDS");
    betsize = 0;

} else if(bankroll <=50) {
betsize = bankroll;
} else if (bankroll<1000) {
betsize = 1/2 * bankroll;
} else {
betsize = 500;
}

var odds = Math.floor(Math.random() * 1000+1);
//console.log(odds);

if (odds>507) {
bankroll = bankroll + betsize;
} else {
bankroll = bankroll - betsize;
}
console.log("bankroll " + bankroll);
console.log("betsize " + betsize);
}

/*var hands=prompt("hands");
console.log("hands " + hands)


for (i = 0; i < hands; i++) {
makeBet();
}*/

while (bankroll >0) {
if (bankroll>=7000) {break;}
makeBet();
}

if (bankroll === 0) {
profit -= inAmt;
}
if (bankroll >=7000) {
profit += bankroll;
profit -= inAmt;
}}

for (i=0; i<runs; i++) {
simulation();
}
console.log("start " + start, " bonus multiplier " + bonusMultiplier, " in amount "+ inAmt, " bonus value "+ bonusValue);
console.log("profit after " + runs + " runs = $" + profit);
var利润=0;
var runs=prompt(“多少次运行?”);
var start=提示(“启动芯片?”);
var bonusMultiplier=提示(“奖金?使用小数点”);
var inAmt=(开始/(1+骨乘数));
var bonusValue=bonusMultiplier*inAmt;
函数模拟(){
var资金=启动;
函数makeBet(){
如果(资金===0){
console.log(“bustoin”+hands+“hands”);
betize=0;
}否则如果(资金0){
如果(资金>=7000){break;}
makeBet();
}
如果(资金===0){
利润-=inAmt;
}
如果(资金>=7000){
利润+=资金;
利润-=inAmt;
}}

for(i=0;i
start
被解释为字符串。如果将字符串和数字相加,则该数字将转换为字符串,然后与另一个字符串合并。更改

start = prompt("Starting chips?");


start
被解释为字符串。如果将一个字符串和一个数字相加,该数字将转换为一个字符串,然后与另一个字符串合并。更改

start = prompt("Starting chips?");

我假设使用

var runs = parseFloat( prompt("How many runs?") );
var start = parseFloat( prompt("Starting chips?") );
var bonusMultiplier = parseFloat( prompt("Bonus? Use decimal.") );
将解决您的问题

如果需要返回整数,请使用
parseInt()

提示接受输入为
字符串
。 如果你想使用数学运算符,你需要数字

对于初学者来说,数据类型主要是错误问题,即使你知道,也要阅读它们。掌握,它们几乎不会再困扰你了。

我假设使用

var runs = parseFloat( prompt("How many runs?") );
var start = parseFloat( prompt("Starting chips?") );
var bonusMultiplier = parseFloat( prompt("Bonus? Use decimal.") );
将解决您的问题

如果需要返回整数,请使用
parseInt()

提示接受输入为
字符串
。 如果你想使用数学运算符,你需要数字


对于初学者来说,数据类型主要是错误问题,即使你知道,也要阅读它们。掌握它们,它们几乎不会再困扰你。

你需要使用parseFloat或其他方法来确保使用prompt检索的值被视为数字而不是字符串。你需要使用parseFloat或其他方法来确保检索到的值使用提示符的d被视为数字而不是字符串