Documentación offline JavaScript main

Math.imul()

main Documentación oficial Licencia CC-BY-SA-2.5Descargado el 2026-08-02

En esta página

The Math.imul() static method returns the result of the C-like 32-bit multiplication of the two parameters.

{{InteractiveExample("JavaScript Demo: Math.imul()")}}

```js interactive-example console.log(Math.imul(3, 4)); // Expected output: 12

console.log(Math.imul(-5, 12)); // Expected output: -60

console.log(Math.imul(0xffffffff, 5)); // Expected output: -5

console.log(Math.imul(0xfffffffe, 5)); // Expected output: -10

## Syntax

```js-nolint
Math.imul(a, b)

Parameters#

  • a
  • : First number.
  • b
  • : Second number.

Return value#

The result of the C-like 32-bit multiplication of the given arguments.

Description#

Math.imul() allows for 32-bit integer multiplication with C-like semantics. This feature is useful for projects like Emscripten.

Because imul() is a static method of Math, you always use it as Math.imul(), rather than as a method of a Math object you created (Math is not a constructor).

If you use normal JavaScript floating point numbers in imul(), you will experience a degrade in performance. This is because of the costly conversion from a floating point to an integer for multiplication, and then converting the multiplied integer back into a floating point. However, with asm.js, which allows JIT-optimizers to more confidently use integers in JavaScript, multiplying two numbers stored internally as integers (which is only possible with asm.js) with imul() could be potentially more performant.

Examples#

Using Math.imul()#

Math.imul(2, 4); // 8
Math.imul(-1, 8); // -8
Math.imul(-2, -2); // 4
Math.imul(0xffffffff, 5); // -5
Math.imul(0xfffffffe, 5); // -10

Specifications#

{{Specifications}}

Browser compatibility#

{{Compat}}

See also#