You can use Round
to get rid of small component.
Round[1. + 10.^-5 I, 10.^-6]
$1. + 0.00001 \rm I$
Round[1. + 10.^-5 I, 10.^-3]
$1.$
For your code
y[w_,n_]= Round[0.32 DiracDelta[(2.495*10^-21 + 0. I) + 1.054*10^-50 w]
+ 1.19 DiracDelta[(1.979*10^-20 + 0. I) + 1.054*10^-58 w],10.^-n];
to eliminate numbers less than 10^-n
How to Plot
Here I define a plotting function ddplot
y[w_] = 0.32 DiracDelta[(2.495*10^-21 + 0. I) + 1.054*10^-50 w] +
1.19 DiracDelta[(1.979*10^-20 + 0. I) + 1.054*10^-58 w];
ddplot[n_] := ListPlot[Cases[y[0], x_ DiracDelta[y_] :> Round[{y, x}, 10.^-n]],
Filling -> Bottom]
ddplot[22]
ddplot[20]
Chop[]
. $\endgroup$DiracDelta[]
with graphics primitives, here is a solution. $\endgroup$