这是我写过的第一个JS程序,所以非常感谢任何帮助!
我正在获得一个WAY off的资金价值。例如,如果您使用
runs = 1,start = 5000,bonusMultiplier =介于0和1之间的任何东西
我通常会获得5000500的资金价值。我已经查了几个小时的代码,但无法理解。在5000500中,5000来自var start,500来自var betsize。我不知道它们是如何组合成一个数字的。请帮忙!
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);
答案 0 :(得分:1)
start
被解释为字符串。如果对字符串和数字求和,则该数字将转换为字符串,然后与另一个字符串进行仲裁。改变
start = prompt("Starting chips?");
到
start = parseFloat(prompt("Starting chips?"));
答案 1 :(得分:1)
我假设使用,
var runs = parseFloat( prompt("How many runs?") );
var start = parseFloat( prompt("Starting chips?") );
var bonusMultiplier = parseFloat( prompt("Bonus? Use decimal.") );
将解决您的问题。
如果需要返回整数,请使用parseInt()
。
提示接受输入为strings
。
如果你想使用数学运算符,你需要数字。
数据类型主要是初学者的错误问题,即使您知道,也要阅读它们。抓住,他们几乎再也不会对你造成伤害。