提问人:lucaasantos 提问时间:8/16/2023 更新时间:8/18/2023 访问量:44
math.random,尝试画最后一个数字
math.random in javascript, try to draw the last number
问:
我在 javascript 中创建了一个函数来绘制数字,但它不绘制最后一个数字,用户通知 1 到 20,它只绘制 1 到 19。
function rand (min=0, max){
const valor = Math.random() * (max - min) + min
return Math.floor(valor)
}
function gerar(){
const min = Number(document.getElementById("minimo").value)
const max = Number(document.getElementById("maximo").value)
我尝试 min=0 或 min=1 但不起作用。
答:
1赞
Vikas Saini
8/16/2023
#1
似乎需要小的更改,对于您正在使用的方程式,您需要传递 [max + 1] 以包含最大数量,或者使用方程式更改函数
(Math.random() * (maximum - minimum + 1) ) << 0
左移运算 0 有效地截断浮点数的小数部分,留下一个整数。这之所以有效,是因为 JavaScript 中的按位运算会自动将其操作数转换为 32 位整数,并且移动 0 不会更改值,但会导致转换为整数。
评论中的更多详细信息,感谢@Mike 'Pomax' Kamermans
任何一个都适合您。
评论
0赞
Mike 'Pomax' Kamermans
8/17/2023
切勿在不解释为什么显示位移位的情况下使用位移位。
0赞
Vikas Saini
8/17/2023
左移运算 0 有效地截断浮点数的小数部分,留下一个整数。
1赞
Mike 'Pomax' Kamermans
8/17/2023
在您的回答中,而不是在评论中。你不是在告诉“我”,你是在告诉所有阅读这个答案的人=) (还要注意,它不仅留下“一个整数”,它还给你留下一个 32 位整数,这是一个非常重要的细节,因为标准的 JS 数字可以对高达 53 位的整数进行建模,这就是为什么你通常想要 Math.round,除非你的数学是你的瓶颈)
评论
console.log(max)
const valor = Math.random() * (max - min + 1) + min
因为您想要的值数是 20 ...即20 - 1 + 1