Note that you don't want to write your numbers in double first before performing calculations involving the symbolic variable J1.
term = J1*(6582018229284824168619876730229377341315370891042652124695852093/13164036458569648337239753460458804039861886925068638906788872192 - 4302204281461843i/81129638414606681695789005144064)
term =
If you look at the first two terms you see that they can't be exactly 1/2; if it was twice the numerator (which ends in 3) would have to end in a 6 and the denominator doesn't. You can see if you convert the number (represented as a string, so the symbolic value is the exact value in the string rather than the closest double precision number to it) that it's very, very close to 1/2 but not exact.
a1 = sym('6582018229284824168619876730229377341315370891042652124695852093');
a2 = sym('13164036458569648337239753460458804039861886925068638906788872192');
vpa(a1/a2, 50)
ans = 0.49999999999999999999999999999999812530027167267725
a3 = sym('4302204281461843i');
a4 = sym('81129638414606681695789005144064');
So what do you get if you use those symbolic values?
Or, approximating to say 20 places:
vpa(term2, 20)
ans =