[英]math.random keeps giving me 0
我偶然發現了這個問題,而不是給我最小,最大之外的隨機數,而是每次給我0! 在此特定時刻,最小值為0(被動),最大值為1.02
我的主app.js文件中的Heres變量:
var randomTicket = helper.getRandomInt(0, g_Totalcost);
這是助手中的功能:
var getRandomInt = function(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
嘗試g_Totalcost
轉換(或轉換為浮點值)參數g_Totalcost
:
var randomTicket = helper.getRandomInt(0, parseFloat(g_Totalcost));
或者,強制轉換函數的參數:
var getRandomInt = function(min, max) {
return Math.floor(Math.random() * (parseFloat(max) - parseFloat(min) + 1)) + parseFloat(min);
};
我認為您需要添加某種類型的驗證來防止非整數輸入,否則該功能將無法正常運行。
我的猜測是您在函數開始時忘記了以下幾行:
min = Math.ceil(min);
max = Math.floor(max);
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/random
這是一些支持分析。
return Math.floor(Math.random() * (1.02 - 0 + 1)) + 0;
簡化為
return Math.floor(Math.random() * (2.02));
Math.random()返回介於0(含)和1(不含)之間的數字
因此,讓我們根據Math.random()的值計算一些可能的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.