I needed to convert decimals to E notation and as it took me a while, I thought it might be useful to others.
If you have a shorter alternative or find any glitches, please post! on mouseUp put fld "in" into tNum put fld "NumberFormat" into tNumberFormat --| to specify output precision. Normally 0.00 put E(tNum,tNumberFormat) into fld "out" end mouseUp function E pNum,pNF local tSign,tEsign,tInt,tDec,n,tBase,tE if pNum is not a number then return pNum --| or "NaN" or "error" if pNum <0 then put "-" into tSign -- if abs(pNum) >=1 then put "+" into tEsign else put "-" into tEsign if char 1 of pNum ="-" then delete char 1 of pNum -- set the itemDel to "." put item 1 of pNum into tInt; add 0 to tInt put item 2 of pNum into tDec -- if tEsign ="+" then put len(tInt)-1 into tE put char 1 of tInt into tBase put char 2 to -1 of (tInt & tDec) into tDec else repeat with n=1 to len(tDec) if char n of tDec >0 then exit repeat end repeat put n into tE put char n of tDec into tBase put char n+1 to -1 of tDec into tDec end if if tBase + tDec =0 then return "0.00E+00" --| standard format case exception -- set the numberFormat to pNF put (tBase&"."&tDec)+0 &"" into n --| As string -- set the numberFormat to "00" return tSign &n& "E"& tESign &tE end E Hugh Senior FLCo _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode