我想获得一个随机的双数字(例如4.58) 并将其数字设为三个变量 - 第一个变量为4,第二个变量为5,第三个变量为8。
答案 0 :(得分:2)
不确定为什么需要将它作为浮点数。只需创建一个三位数字,将其转换为字符串,然后将其拆分为数组。
var numArr = (Math.floor(Math.random() * 900) + 100).toString().split('');
您可以使用常规数组方法获取数字:numArr[0]
等。
要将其转换为数字,请在第一个数组位置添加句点,然后将其重新连接到一起:
numArr.splice(1, 0, '.');
var number = numArr.join('');
或者,请参阅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