dstmwrp_exp.pro 957 Bytes
FUNCTION dstmwrp_exp, axis, index, number

;IC: modified so that a '1' isn't displayed before the values
 
  ;A special case.
  IF number EQ 0 THEN RETURN, '0'
 
  ; Assuming multiples of 10 with format.
  ex = String(number, Format='(e8.0)')
  pt = StrPos(ex, '.')
 
  first = StrMid(ex, 0, pt)
  sign = StrMid(ex, pt+2, 1)
  thisExponent = StrMid(ex, pt+3)
 
  ; Shave off leading zero in exponent
  WHILE StrMid(thisExponent, 0, 1) EQ '0' DO thisExponent = StrMid(thisExponent, 1)
 
  ; Fix for sign and missing zero problem.
  IF (Long(thisExponent) EQ 0) THEN BEGIN
     sign = ''
     thisExponent = '0'
  ENDIF
 
  ; Make the exponent a superscript.
  IF sign EQ '-' THEN BEGIN
     IF first EQ 1 then RETURN, '10!U' + sign + thisExponent + '!N' ELSE RETURN, first + 'x10!U' + sign + thisExponent + '!N'
  ENDIF ELSE BEGIN
     IF first EQ 1 then RETURN, '10!U' + thisExponent + '!N' ELSE RETURN, first + 'x10!U' + thisExponent + '!N'
  ENDELSE
 
END