\ string>float 00.3.17 NAB

needs string

: string>float ( c-addr u -- ) ( F: -- r )
  -trailing
  0 >r  \ negative flag, false to start
  begin
\ Attempt float conversion:
    2dup >float 0= while  \ failed
\ If string is empty, return 0E:
      dup
      0= if  2drop 0e  r> drop exit then
\ If first char is '-', update flag:
      over c@
      dup [char] - = if  r> drop >r
      else  drop  then
      1 /string
  repeat
  2drop  r>  if  fnegate  then ;
