如何获得一个双随机数并将其数字放到变量?

时间:2015-09-03 10:32:56

标签: javascript html

我想获得一个随机的双数字(例如4.58) 并将其数字设为三个变量 - 第一个变量为4,第二个变量为5,第三个变量为8。

3 个答案:

答案 0 :(得分:2)

不确定为什么需要将它作为浮点数。只需创建一个三位数字,将其转换为字符串,然后将其拆分为数组。

var numArr = (Math.floor(Math.random() * 900) + 100).toString().split('');

您可以使用常规数组方法获取数字:numArr[0]等。

要将其转换为数字,请在第一个数组位置添加句点,然后将其重新连接到一起:

numArr.splice(1, 0, '.');
var number = numArr.join('');

DEMO

或者,请参阅this SO question有关如何创建随机浮点数的信息。

答案 1 :(得分:1)

你可以这样做:

var number = 4.26; // Your generated double number
output = []; // Array to store each digit
sNumber = number.toString(); // Convert the double to a string so we can split it

for (var i = 0, len = sNumber.length; i < len; i += 1) 
{
    output.push(+sNumber.charAt(i));
}

console.log(output);

输出将是:

4, 2, 6

JavaScript中的所有数字都是双倍的:也就是说,它们存储为64位IEEE-754双倍。

也就是说,目标不是得到一个&#34; double&#34;:目标是获得格式化为&#34; YYY.XX&#34;的数字的字符串reprsentation。为此,请考虑Number.toFixed,例如:

(100).toFixed(2)

结果是字符串(不是&#34; double&#34;!)&#34; 100.00&#34;。在这种情况下,括号必须避免语法歧义(它也可以写成100.0.toFixed或100..toFixed),但如果100在变量中则不需要。

答案 2 :(得分:1)

使用它。我使用.replace(/[.]/g,"")删除“。”。

http://jsfiddle.net/sherali/coyv3erf/2/

var randomNumber = Math.floor(Math.random() * 900) + 100;
numArr= randomNumber.toString().replace(/[.]/g,"").split("")
var number = numArr.join("");

console.log(numArr, number); // ["8", "4", "5"]  845