unc() - JavaScript - MDN - Mozilla

  • Skip to main content
  • Skip to search
Math.trunc() Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨July 2015⁩.

  • Learn more
  • See full compatibility
  • Report feedback

The Math.trunc() static method returns the integer part of a number by removing any fractional digits.

In this article

  • Try it
  • Syntax
  • Description
  • Examples
  • Specifications
  • Browser compatibility
  • See also

Try it

console.log(Math.trunc(13.37)); // Expected output: 13 console.log(Math.trunc(42.84)); // Expected output: 42 console.log(Math.trunc(0.123)); // Expected output: 0 console.log(Math.trunc(-0.123)); // Expected output: -0

Syntax

jsMath.trunc(x)

Parameters

x

A number.

Return value

The integer part of x.

Description

The way Math.trunc() works is more straightforward than the other three Math methods: Math.floor(), Math.ceil() and Math.round(); it truncates (cuts off) the dot and the digits to the right of it, no matter whether the argument is a positive or negative number.

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

Examples

Using Math.trunc()

jsMath.trunc(-Infinity); // -Infinity Math.trunc("-1.123"); // -1 Math.trunc(-0.123); // -0 Math.trunc(-0); // -0 Math.trunc(0); // 0 Math.trunc(0.123); // 0 Math.trunc(13.37); // 13 Math.trunc(42.84); // 42 Math.trunc(Infinity); // Infinity

Using bitwise no-ops to truncate numbers

Warning: This is not a polyfill for Math.trunc() because of non-negligible edge cases.

Bitwise operations convert their operands to 32-bit integers, which people have historically taken advantage of to truncate float-point numbers. Common techniques include:

jsconst original = 3.14; const truncated1 = ~~original; // Double negation const truncated2 = original & -1; // Bitwise AND with -1 const truncated3 = original | 0; // Bitwise OR with 0 const truncated4 = original ^ 0; // Bitwise XOR with 0 const truncated5 = original >> 0; // Bitwise shifting by 0

Beware that this is essentially toInt32, which is not the same as Math.trunc. When the value does not satisfy -231 - 1 < value < 231 (-2147483649 < value < 2147483648), the conversion would overflow.

jsconst a = ~~2147483648; // -2147483648 const b = ~~-2147483649; // 2147483647 const c = ~~4294967296; // 0

Only use ~~ as a substitution for Math.trunc() when you are confident that the range of input falls within the range of 32-bit integers.

Specifications

Specification
ECMAScript® 2026 Language Specification# sec-math.trunc

Browser compatibility

See also

  • Polyfill of Math.trunc in core-js
  • Math.abs()
  • Math.ceil()
  • Math.floor()
  • Math.round()
  • Math.sign()

Help improve MDN

Was this page helpful to you? Yes No Learn how to contribute

This page was last modified on ⁨Jul 10, 2025⁩ by MDN contributors.

View this page on GitHub • Report a problem with this content Filter sidebar
  1. Standard built-in objects
  2. Math
  3. Static methods
    1. abs()
    2. acos()
    3. acosh()
    4. asin()
    5. asinh()
    6. atan()
    7. atan2()
    8. atanh()
    9. cbrt()
    10. ceil()
    11. clz32()
    12. cos()
    13. cosh()
    14. exp()
    15. expm1()
    16. f16round()
    17. floor()
    18. fround()
    19. hypot()
    20. imul()
    21. log()
    22. log1p()
    23. log2()
    24. log10()
    25. max()
    26. min()
    27. pow()
    28. random()
    29. round()
    30. sign()
    31. sin()
    32. sinh()
    33. sqrt()
    34. sumPrecise()
    35. tan()
    36. tanh()
    37. trunc()
  4. Static properties
    1. E
    2. LN2
    3. LN10
    4. LOG2E
    5. LOG10E
    6. PI
    7. SQRT1_2
    8. SQRT2

Từ khóa » Hàm Trunc Trong C++