Max Asked:2020-10-24 21:17:25 +0000 UTC2020-10-24 21:17:25 +0000 UTC 2020-10-24 21:17:25 +0000 UTC 如何在javascript中平均划分一个数字? 772 如何在javascript中划分一个数字? 有整数除法运算符吗? javascript 6 个回答 Voted Best Answer koks_rs 2020-10-24T21:33:24Z2020-10-24T21:33:24Z 在 JS 中有几种方法可以除以一个数字而没有余数。 方法一、四舍五入: var x = 10, y = 3.3333; alert(Math.floor(x/y)); 此方法专为大于零的计算结果而设计。如果结果是否定的,那么这个设计将无法正常工作。 例如 : Math.floor(-100/3); // Выдаст -34, хотя целая часть от -33,33333336 будет равна -33 或者,您可以使用 if 语句通过四舍五入来解决此问题: if(x/y>=0) alert(Math.floor(x/y)); else alert(Math.ceil(x/y)); 方法二: 可能不如前一种快,但更通用。转换为 int: var x = 10, y = 3.3333; alert(parseInt(x/y)); 方法三。多产且多才多艺: var x = 10, y = 3.3333; function div(val, by){ return (val - val % by) / by; } alert(div(x, y)); 好吧,有点铁杆: alert(~~(x/y)) // сокращенный Math.floor() результаты будут такие же alert(x/y>>0) alert(x/y|0) jsfiddle上的演示 Grundy 2020-10-24T21:52:24Z2020-10-24T21:52:24Z javascript中没有整数和浮点数的划分。 因此,也许没有专门的整数算术运算符。 基于此,有以下几种解决方案: 执行正常除法并取结果的整数部分。此程序有Math.floor和Math.ceil函数,区别在于选择较大的整数还是较小的整数。 console.log(Math.floor(10 / 3)); console.log(Math.floor(-10 / 3)); console.log(Math.ceil(10 / 3)); console.log(Math.ceil(-10 / 3)); 从示例中可以看出,对于正数它是合适floor的,对于负数ceil 使用位运算。在规范级别,说明按位运算仅适用于 32 位整数,因此在使用它们时应小心:应用于大数时,数字的高位将被截断。同时,这允许您通过在执行按位运算之前将参数转换为整数来快速获取整数部分。 一个常见的技巧是使用按位或with 0,这会使原始数字的所有位保持不变。以及按位移位,也按 0 位 console.log((10 / 3) | 0); console.log((-10 / 3) | 0); console.log((10 / 3) >> 0); console.log((-10 / 3) >> 0); console.log(' Неожиданно: ', (10000000000 / 2) | 0) console.log(' Неожиданно: ', (10000000000 / 2) >> 0) chubatiy 2020-10-24T21:22:59Z2020-10-24T21:22:59Z 作为除法选项,使用此结构 function divme(a, b){ return (a - a%b)/b } 不 UPD:我遇到了另一个部门选项。也许它会对你有用。关联 Surfin Bird 2020-10-24T21:26:26Z2020-10-24T21:26:26Z 这是另一种选择: Math.floor(a / b); 这是一个,但最好小心使用它——它只适用于小数字(最多 4e9): a / b | 0 Sasha Omelchenko 2020-10-24T21:26:33Z2020-10-24T21:26:33Z 这完全取决于您希望如何舍入除法结果。 Math.floor(a/b); Math.floor(3/2); // = 1 关联 Math.ceil(a/b); Math.ceil(3/2); // = 2; 关联 Nikko Odd 2020-06-19T16:26:38Z2020-06-19T16:26:38Z 使用函数 Math.trunc(x); Math.trunc(13.37); // 13 Math.trunc(42.84); // 42 Math.trunc(0.123); // 0 Math.trunc(-0.123); // -0 Math.trunc('-1.123'); // -1 MDN上的功能描述
在 JS 中有几种方法可以除以一个数字而没有余数。
方法一、四舍五入:
例如 :
或者,您可以使用 if 语句通过四舍五入来解决此问题:
方法二: 可能不如前一种快,但更通用。转换为 int:
方法三。多产且多才多艺:
好吧,有点铁杆:
jsfiddle上的演示
javascript中没有整数和浮点数的划分。
因此,也许没有专门的整数算术运算符。
基于此,有以下几种解决方案:
执行正常除法并取结果的整数部分。此程序有Math.floor和Math.ceil函数,区别在于选择较大的整数还是较小的整数。
从示例中可以看出,对于正数它是合适
floor的,对于负数ceil使用位运算。在规范级别,说明按位运算仅适用于 32 位整数,因此在使用它们时应小心:应用于大数时,数字的高位将被截断。同时,这允许您通过在执行按位运算之前将参数转换为整数来快速获取整数部分。
一个常见的技巧是使用按位或with
0,这会使原始数字的所有位保持不变。以及按位移位,也按 0 位作为除法选项,使用此结构
不
UPD:我遇到了另一个部门选项。也许它会对你有用。关联
这是另一种选择:
这是一个,但最好小心使用它——它只适用于小数字(最多 4e9):
这完全取决于您希望如何舍入除法结果。
关联
关联
使用函数 Math.trunc(x);
MDN上的功能描述