ChatGPT解决这个技术问题 Extra ChatGPT

如何在javascript中进行整数除法(在int中获取除法答案而不是float)? [复制]

这个问题在这里已经有了答案:如何在 JavaScript 中执行整数除法并分别获得余数? (18 个回答) 8 年前关闭。

Javascript中是否有任何函数可以让您进行整数除法,我的意思是在int中获得除法答案,而不是在浮点数中。

var x = 455/10;
// Now x is 45.5
// Expected x to be 45

但我希望 x 为 45。我试图从数字中删除最后一位数字。

你试过 parseInt 或 Math.floor 吗?
@SB 我如何使用 parseInt 来解决这个问题。
@纳基布,parseInt(455/10);
Nakib - 你可以试试parseInt(x)
现在最好的方法是: var x = Math.trunc(455/10);

L
Lesmana
var answer = Math.floor(x)

我真诚地希望这将有助于未来的搜索者在谷歌上搜索这个常见问题。


谢谢,我google了一下,没找到,谢谢:)
我发现具有讽刺意味的是,这是我在谷歌搜索如何解决这个问题的最佳答案。
我发现这个答案甚至并不总是正确的。如果结果为负数,Math.floor() 返回错误结果。所以即使是谷歌也会返回一个不正确的答案。这里:stackoverflow.com/questions/4228356/…
此处使用 Math.floor() 仅适用于给定数字为正的情况。 look at this for more explaination。通常 parseInt() 是获取数字或字符串的整数部分的更好选择。
Math.trunc() 解决负值问题。实际上,如果您只想删除小数部分,则需要 trunc 。 stackoverflow.com/a/22307150/5876282
S
ST3
var x = parseInt(455/10);

parseInt() 函数解析一个字符串并返回一个整数。 radix 参数用于指定使用哪种数字系统,例如基数为 16(十六进制)表示应将字符串中的数字从十六进制数解析为十进制数。如果 radix 参数被省略,JavaScript 假设如下: 如果字符串以“0x”开头,则基数为 16(十六进制) 如果字符串以“0”开头,则基数为 8(八进制)。不推荐使用此功能如果字符串以任何其他值开头,则基数为 10(十进制)


这是低效的,因为它有一个隐式 number.toString() 调用,后面跟着一个 parse,与 Math.floor 相比,它相对昂贵。不保证 parseInt 将接受 number 参数。
然而,这模拟了 python3 的行为:math.inf // 7 == nan => parseInt(Infinity / 7) == NaN
从 PHP 模拟 intdiv() 可以通过以下方式完成,而无需使用奇怪的浮点数学或其他方法。 const intDiv = (a, b) => (a - a % b) / b;