取随机数() 当取得值为负数时,返回 0 。请看下列代码:
变量 临时画笔 = 创建 画笔()
临时画笔.宽度=4
'临时画笔.颜色=自颜色
变量 随机数 为 整数型
随机数=取随机数(-16777216,-986896) '白色:-986896 黑色:-16777216
弹出提示("随机数:" + 到文本(随机数)) '随机数: 0 <=== 这里有bug。得出的全部是 0 。
临时画笔.整数颜色= 随机数 '-2354116 红色 '<=== 多次尝试,取随机数()什么也画不出来。
'临时画笔.整数颜色= -2354116 '红色 画出红色矩形。
自画板.画矩形((int)自左边,(int)自顶边,(int)长,(int)宽,临时画笔)
不需要啊,如果要取负100到正100之间的随机数,区间:[-100,100] ,那么只需要获取总区间长度的随机数再加上最小值就行了,一行代码就能得出,例如:
变量 随机数1 = 取随机数(0,200) - 100也可以封装成类似您提供的自定义JS函数:
函数 取自定义随机数(最小值 为 整数型,最大值 为 整数型)
返回 取随机数(0,最大值 - 最小值) + 最小值
结束 函数如果是变量, 不知道其正负号, 那又麻烦了。
取随机数() 得改。 如果不改的话,就当我没说。
不需要啊,如果要取负100到正100之间的随机数,区间:[-100,100] ,那么只需要获取总区间长度的随机数再加上最小值就行了,一行代码就能得出,例如:
变量 随机数1 = 取随机数(0,200) - 100也可以封装成类似您提供的自定义JS函数:
函数 取自定义随机数(最小值 为 整数型,最大值 为 整数型)
返回 取随机数(0,最大值 - 最小值) + 最小值
结束 函数注:刚刚回复自定义函数缺少返回类型,正确的代码:
函数 取自定义随机数(最小值 为 整数型,最大值 为 整数型) 为 整数型
返回 取随机数(0,最大值 - 最小值) + 最小值
结束 函数
如果一个数是正的,一个数是负的, 那还要写几句代码判断正负不成。
不需要啊,如果要取负100到正100之间的随机数,区间:[-100,100] ,那么只需要获取总区间长度的随机数再加上最小值就行了,一行代码就能得出,例如:
变量 随机数1 = 取随机数(0,200) - 100也可以封装成类似您提供的自定义JS函数:
函数 取自定义随机数(最小值 为 整数型,最大值 为 整数型)
返回 取随机数(0,最大值 - 最小值) + 最小值
结束 函数
如果一个数是正的,一个数是负的, 那还要写几句代码判断正负不成。
这是 java scriipt 代码,不管有没有正负,输出的都是正确值。
/**
* 在两个数的区间内随机生成一个数字
* @param {number} num1 - 区间边界1(任意数字)
* @param {number} num2 - 区间边界2(任意数字)
* @param {boolean} isInteger - 是否返回整数(默认 false,返回浮点数)
* @returns {number} 区间内的随机数
*/
function randomInRange(num1, num2, isInteger = false) {
// 第一步:处理边界顺序(确保 min ≤ max,避免用户输入顺序错误)
const min = Math.min(num1, num2);
const max = Math.max(num1, num2);
// 第二步:生成区间内的随机数
const randomFloat = Math.random() * (max - min) + min; // [min, max) 浮点数
// 第三步:如需整数,进行取整处理(Math.floor 向下取整,得到 [min, max-1];Math.round 四舍五入得到 [min, max])
return isInteger ? Math.floor(randomFloat) : randomFloat;
}
// 测试示例
// 1. 区间内随机浮点数(例如 -10 到 5 之间)
console.log("区间浮点数(-10 ~ 5):", randomInRange(-10, 5).toFixed(2)); // toFixed(2) 保留2位小数
//区间浮点数(-10 ~ 5): -1.32
// 2. 区间内随机整数(例如 3 到 10 之间)
console.log("区间整数(3 ~ 10):", randomInRange(3, 10, true));
//区间整数(3 ~ 10): 6
// 3. 边界顺序颠倒也能正常工作(例如 7 到 2,自动转为 2 ~ 7)
console.log("颠倒边界的整数(2 ~ 7):", randomInRange(7, 2, true));
//颠倒边界的整数(2 ~ 7): 5
这样感觉不够好。
感谢您的反馈,经检查,该问题不属于BUG,因为该函数在设计时只提供了针对正整数的随机取值,如果您需要获取负整数随机数,可以先取出一个正整数随机数然后乘以 ` -1 ` 其结果则为负数。