;helper function for formatannotation.pro
;checks if rounding will add a digit to exponential format
pro check_eround, val, neg, dec, precision, exponent, expsign
compile_opt idl2, hidden
;get string of digit to be rounded
z = val * 10d^precision
z_frac = abs(z mod 1.0)
if finite(z_frac) && z_frac gt .5 then begin ;see if number rounds
i = neg ? -1:1
if abs(val +i*10d^(-precision)) ge 10 then begin ; see if rounding increases order of magnitude
if expsign eq -1 then begin
exponent--
endif else begin
exponent++
endelse
val=val * 10d^(-1) ;if exponent is incremented or decremeneted by rounding then shift abcissa
endif
endif
; zs = strtrim(string(z, format='(D255.1)'),1)
; zs1 = strmid(zs,strlen(zs)-3,1)
;
; ;add length and shift if rounding increases order of magnitude
; if is_numeric(zs1) then begin
; if double(zs1) ge 5 then begin
; i = neg ? -1:1
; if abs(val +i*10d^(-precision)) ge 10 then begin
; if expsign eq -1 then begin
; exponent--
; endif else begin
; exponent++
; endelse
; val=val * 10d^(-1)
; endif
; endif
end