25

在我的计算器上,当我做 18/7 时,我得到 2.5714285714285714285714285714286。从我超级有限的数学技能 2 是商和 .5714285714285714285714285714286 是余数。

如何在 JavaScript 中对此建模?

谢谢!

4

8 回答 8

44
var floatingPointPart = (18/7) % 1;
var integerPart = Math.floor(18/7);
于 2012-09-23T03:05:37.703 回答
19

Math.floor 存在在负数的情况下将结果四舍五入到错误方向的问题,最好使用按位运算来获得整数商。

var quot = ~~(num/num1)

希望这对你有用!

于 2015-08-19T10:25:13.250 回答
10
var rawQuotient = 18/7;
var remainder = rawQuotient % 1;
var quotient = rawQuotient - remainder;

在大多数数学中,没有真正需要区分小数部分和整数部分,特别是考虑到整个事物可以表示为分数(18/7)、实数或整数和分数的混合(2 和 4/7)。

当您进入编程或工程或其他一些衍生领域时,您对分离有明确的用途;但是商实际上是整个事物,整数和分数,但是您选择表示它。

于 2012-09-21T22:46:26.880 回答
4

我们可以使用简单的数学来仅使用/&%运算符得到答案。

将“num1”视为第一个值,将“num2”视为第二个值。然后 :

var Quotient = (num1 - (num1 % num2)) / num2;

var FloatingPoint = (num1 % num2) / num2;
于 2014-05-28T07:16:13.360 回答
3

2 是商(或结果的整数部分),4 是余数,4/7 是 OP 请求的结果的浮点部分。

var result = (18/7);
var integerPart = Math.floor(result);
var floatingPointPart = result - integerPart;

integerPart 和 floatingPointPart 是请求的值。

于 2013-02-27T23:15:12.487 回答
1
var decimals = float - (float | 0);
于 2012-09-21T22:12:01.587 回答
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)

/* 返回值:(字符串)*/

2 和 4/18

于 2012-09-22T01:38:23.593 回答
0

在十进制数2.5714285714285716中,,也是整数部分,是2小数/小数部分是0.57142857142857160.5714285714285716 但实际上,余数是 4.000000000000002 或 4

let decimal = 18 / 7;
let quotient = ~~decimal;
let dec_remainder = decimal - quotient;
let dec_remainder0 = decimal % 1;
let remainder = dec_remainder * 7;
let remainder0 = 18 % 7;

document.body.innerHTML = "In the decimal number "+decimal+",<br/>
the quotient, which also is the whole part, is "+quotient+"<br/>
and the decimal/fractional part is "+dec_remainder+ " or " + dec_remainder0 + "<br/>
but actually, the remainder is "+remainder+" or "+remainder0 ;
<!DOCTYPE html>
<html>
<body>
</body>
</html>

您可以通过多种方式确定商。

于 2021-11-19T19:48:28.420 回答