如何在一系列全数中划分数字a?

时间:2014-05-03 15:03:18

标签: javascript jquery logic

如果这是一个愚蠢的问题,你很抱歉。

我想问一下如何在Javascript中安全地划分它始终存在的数字 以一种输出纯整数的方式输出结果。

示例:

10/2 ---> 5,5(它将是2 5,因此它是整数)

BUT

10/3 ---> 3,3,4(它将有两个3和一个4,因此它仍将导致10)

4 个答案:

答案 0 :(得分:1)

10/3将给你3.333333 ...,从不四...如果你想检查一个数字会给你“整数”,如你所说,使用modulo(%)。

Modulo找到一个数字除以另一个数的余数。

例如

10%5 = 0因为10除以5是“整数”

10%3 = 1因为最接近的10/3是3 ... 3x3 = 9 ... 10-9 = 1

所以在你的代码中,如果你想知道一个数字除以另一个数字是否完整,你需要做

if (number1%number2 == 0) { ... }

详细了解here

编辑:

我再次阅读了您的问题,我认为this fiddle就是您想要的

var number1 = 10,
    number2 = 3;

if (number1 / number2 == 0) {
    alert('the numbers are whole');
} else {
    var remainder = number1%number2;
    var wholes = Math.floor(number1 / number2);

    var output = '';

    for (var i = 0; i < (wholes - 1); i++) {
     output+= number2 + ', ';
    }

    output += (number2 + remainder);

    alert(output);
}

答案 1 :(得分:0)

无论结果如何,只需将其传递给parseInt函数,例如: -

假设你的答案是4.3,

可以使用

来计算接近它的整数

parseInt(4.3) 等于4。

答案 2 :(得分:0)

看看这个非常简单的例子:

var x = 10;
var y = 3;

var result = x/y;
var rest = x%y;

for (var i=0; i<y; i++) {

    var output;

    if(i==y-1){
        output = parseInt(result + rest);
    }
    else{
        output = parseInt(result);
    }

    alert(output);
}

http://jsfiddle.net/guinatal/469Vv/4/

答案 3 :(得分:0)

另一个可能性:将数字设为字符串并遍历所有元素

var a = 11 / 4;
//turn it into a string and remove all non-numeric chars
a = a.toString().replace(/\D/g, '');
//split the string in seperate characters
a = a.split("");
var num = new Array();
//convert back to numbers
for (var i = 0; i < a.length; i++) {
    num.push(parseFloat(a[i]));
}
alert(num);

在旁注中,您必须进行某种舍入,以防止永久重复数字,例如10/3。

Here is a fiddle