version 1.31, 2000/08/09 20:04:05
|
version 1.33, 2000/09/23 12:27:46
|
Line 100 DOES> ( -- r )
|
Line 100 DOES> ( -- r )
|
IF '- emit THEN ; |
IF '- emit THEN ; |
|
|
: f. ( r -- ) \ float-ext f-dot |
: f. ( r -- ) \ float-ext f-dot |
\G Display (the floating-point number) @i{r} using fixed-point notation, |
\G Display (the floating-point number) @i{r} without exponent, |
\G followed by a space. |
\G followed by a space. |
f$ dup >r 0< |
f$ dup >r 0< |
IF '0 emit |
IF '0 emit |
Line 110 DOES> ( -- r )
|
Line 110 DOES> ( -- r )
|
\ I'm afraid this does not really implement ansi semantics wrt precision. |
\ I'm afraid this does not really implement ansi semantics wrt precision. |
\ Shouldn't precision indicate the number of places shown after the point? |
\ Shouldn't precision indicate the number of places shown after the point? |
|
|
|
\ Why do you think so? ANS Forth appears ambiguous on this point. -anton. |
|
|
: fe. ( r -- ) \ float-ext f-e-dot |
: fe. ( r -- ) \ float-ext f-e-dot |
\G Display @i{r} using engineering notation, followed by a space. |
\G Display @i{r} using engineering notation (with exponent dividable |
|
\G by 3), followed by a space. |
f$ 1- s>d 3 fm/mod 3 * >r 1+ >r |
f$ 1- s>d 3 fm/mod 3 * >r 1+ >r |
scratch r@ min type '. emit scratch r> /string type |
scratch r@ tuck min tuck - >r type r> zeros |
|
'. emit scratch r> /string type |
'E emit r> . ; |
'E emit r> . ; |
|
|
: fs. ( r -- ) \ float-ext f-s-dot |
: fs. ( r -- ) \ float-ext f-s-dot |
\G Display @i{r} using scientific notation, followed by a space. |
\G Display @i{r} using scientific notation (with exponent), followed |
|
\G by a space. |
f$ 1- |
f$ 1- |
scratch over c@ emit '. emit 1 /string type |
scratch over c@ emit '. emit 1 /string type |
'E emit . ; |
'E emit . ; |