replaces approximate real numbers in expr that are close to zero by the exact integer 0.


  • Chop[expr,delta] replaces numbers smaller in absolute magnitude than delta by 0.
  • Chop uses a default tolerance of 10-10.
  • Chop works on both Real and Complex numbers.


open allclose all

Basic Examples  (1)

Zero out elements that are very close to 0:

Scope  (2)

Drop small imaginary parts:

Convert from approximate zeros to exact zeros:

Applications  (2)

Test if two numbers are the same to a certain tolerance:

They are the same to the default tolerance of :

They are not the same to the tolerance of :

Eliminate very small terms before comparing with Equal:

They are not equal because a small number is not equal to zero:

Once the small terms are eliminated, equality holds:

Properties & Relations  (1)

A functional implementation of Chop:

Chop is much faster for large expressions:

Possible Issues  (1)

Machine complex numbers have machine reals for both real and imaginary parts:

Consequently, Chop does not make the real part of machine complex numbers an exact zero:

Small imaginary parts from machine complex numbers are eliminated to make a machine real:

Introduced in 1988