如果这是一个愚蠢的问题,你很抱歉。
我想问一下如何在Javascript中安全地划分它始终存在的数字 以一种输出纯整数的方式输出结果。
示例:
10/2 ---> 5,5(它将是2 5,因此它是整数)
BUT
10/3 ---> 3,3,4(它将有两个3和一个4,因此它仍将导致10)
答案 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);
}
答案 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。