在我的计算器上,当我进行18/7运算时,得到的结果是2.5714285714285714285714285714286。从我极其有限的数学技能来看,2是商数,.5714285714285714285714285714286 是余数。
我该如何在JavaScript中对此进行建模?
谢谢!
在我的计算器上,当我进行18/7运算时,得到的结果是2.5714285714285714285714285714286。从我极其有限的数学技能来看,2是商数,.5714285714285714285714285714286 是余数。
我该如何在JavaScript中对此进行建模?
谢谢!
var floatingPointPart = (18/7) % 1;
var integerPart = Math.floor(18/7);
Math.trunc
呢?这样它也可以处理负数。 - letmaikMath.floor
会将其向负数端靠近,因此 -3.3
变成了 -4
,而 Math.trunc
则将其变为 -3
(按照截断的预期舍弃小数)。公平地说,这个答案是在 ES6 在2015年成为标准之前做出的... 在此处查看更多关于 Math.trunc
的信息:https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-math.trunc - CyberMewMath.floor存在一个问题,在处理负数时会将结果向错误的方向舍入,更好的方法是使用位运算来获得整数商。
var quot = ~~(num/num1)
希望这对你有用!
var rawQuotient = 18/7;
var remainder = rawQuotient % 1;
var quotient = rawQuotient - remainder;
在大部分数学中,通常没有必要区分整数和分数部分,特别是考虑到整个数可以表示为一个分数(18/7),一个实数或者整数和分数的混合形式(2又4/7)。但是在编程、工程或其他相关领域中,需要明确划分二者,但商仍然包含整数和分数的全部内容,无论你如何选择表示它。我们可以只使用 /
和 %
运算符来进行简单的数学运算。
将“num1”作为第一个值,将“num2”作为第二个值。则:
var Quotient = (num1 - (num1 % num2)) / num2;
var FloatingPoint = (num1 % num2) / num2;
2是商(或结果的整数部分),4是余数,4/7是结果的浮点数部分,这是OP所请求的。
var result = (18/7);
var integerPart = Math.floor(result);
var floatingPointPart = result - integerPart;
var decimals = float - (float | 0);
let quotient = 18n / 7n;
let remainder = 18 % 7;
console.log(`${quotient}, ${remainder}`);
浮点数可以转换为大整数:
let dividend = 18;
let divisor = 7;
let quotient = BigInt(dividend) / BigInt(divisor);
let remainder = dividend % divisor;
console.log(`${quotient}, ${remainder}`);
或者使用 Math.trunc
:
let quotient = Math.trunc(18 / 7);
let remainder = 18 % 7;
console.log(`${quotient}, ${remainder}`);
2.5714285714285716
中,
商,也是整数部分,为2
,
而小数/分数部分为0.5714285714285716
或0.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>
你可以用多种方法确定商。
实际上,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
4
吗?18%7 === 4
。 - elclanrs