在我的计算器上,当我做18/7时,我得到2.5714285714285714285714285714286。 从我超级有限的数学技能2是商,而.5714285714285714285714285714286是余数。
如何在JavaScript中对此进行建模?
谢谢!
答案 0 :(得分:29)
var floatingPointPart = (18/7) % 1;
var integerPart = Math.floor(18/7);
答案 1 :(得分:7)
Math.floor有一个问题,即在负数的情况下将结果舍入到错误的方向,最好使用按位运算来获得整数商。
var quot = ~~(num/num1)
希望这适合你!
答案 2 :(得分:6)
var rawQuotient = 18/7;
var remainder = rawQuotient % 1;
var quotient = rawQuotient - remainder;
在大多数数学中,没有真正需要区分小数部分和整个部分,特别是考虑到整个事物可以表示为分数(18/7),作为实数,或作为混合整数和分数(2和4/7)。
当你进入编程或工程或其他衍生工具时,你有明确的分离用途;但商是整个事物,整数和分数,但你选择代表那个。
答案 3 :(得分:3)
我们可以使用简单的数学来仅使用/
& %
运营商。
考虑' num1'作为第一价值& ' NUM2'作为第二个价值。然后:
var Quotient = (num1 - (num1 % num2)) / num2;
var FloatingPoint = (num1 % num2) / num2;
答案 4 :(得分:2)
2是商(或结果的整数部分),4是余数,4/7是结果的浮点部分,OP正在请求。
var result = (18/7);
var integerPart = Math.floor(result);
var floatingPointPart = result - integerPart;
integerPart和floatingPointPart是请求的值。
答案 5 :(得分:1)
var decimals = float - (float | 0);
答案 6 :(得分:0)
实际上,2是商,4/18是余数。
Math.divideby= function(d, dby){
var q= Math.floor(d/dby), r= d-(q*dby);
return r== 0? q:q+' and '+r+'/'+d;
}
<强> Math.divideby(18,7)强>
/ *返回值:(String)* /
2和4/18