math, syntax: document hexadecimal float literal syntax

db4
Slava Pestov 2009-09-12 21:18:17 -05:00
parent a2b864e4f5
commit aad68418d2
2 changed files with 22 additions and 5 deletions

View File

@ -5,7 +5,7 @@ IN: math.parser
ARTICLE: "number-strings" "Converting between numbers and strings" ARTICLE: "number-strings" "Converting between numbers and strings"
"These words only convert between real numbers and strings. Complex numbers are constructed by the parser (" { $link "parser" } ") and printed by the prettyprinter (" { $link "prettyprint" } ")." "These words only convert between real numbers and strings. Complex numbers are constructed by the parser (" { $link "parser" } ") and printed by the prettyprinter (" { $link "prettyprint" } ")."
$nl $nl
"Note that only integers can be converted to and from strings using a representation other than base 10. Calling a word such as " { $link >oct } " on a float will give a result in base 10." "Integers can be converted to and from arbitrary bases. Floating point numbers can only be converted to and from base 10 and 16."
$nl $nl
"Converting numbers to strings:" "Converting numbers to strings:"
{ $subsection number>string } { $subsection number>string }
@ -93,7 +93,19 @@ HELP: >oct
HELP: >hex HELP: >hex
{ $values { "n" real } { "str" string } } { $values { "n" real } { "str" string } }
{ $description "Outputs a string representation of a number using base 16." } ; { $description "Outputs a string representation of a number using base 16." }
{ $examples
{ $example
"USING: math.parser prettyprint ;"
"3735928559 >hex ."
"\"deadbeef\""
}
{ $example
"USING: math.parser prettyprint ;"
"-15.5 >hex ."
"\"-f.8p0\""
}
} ;
HELP: string>float ( str -- n/f ) HELP: string>float ( str -- n/f )
{ $values { "str" string } { "n/f" "a real number or " { $link f } } } { $values { "str" string } { "n/f" "a real number or " { $link f } } }

View File

@ -59,20 +59,25 @@ ARTICLE: "syntax-ratios" "Ratio syntax"
"More information on ratios can be found in " { $link "rationals" } ; "More information on ratios can be found in " { $link "rationals" } ;
ARTICLE: "syntax-floats" "Float syntax" ARTICLE: "syntax-floats" "Float syntax"
"Floating point literals must contain a decimal point, and may contain an exponent:" "Floating point literals can be input in base 10 or 16. Base 10 literals must contain a decimal point, and may contain an exponent after " { $snippet "e" } ":"
{ $code { $code
"10.5" "10.5"
"-3.1456" "-3.1456"
"7.e13" "7.e13"
"1.0e-5" "1.0e-5"
} }
"There are three special float values:" "Base 16 literals use " { $snippet "p" } " instead of " { $snippet "e" } " for the exponent, which is still decimal:"
{ $example
"10.125 HEX: 1.44p3 = ."
"t"
}
"Syntax for special float values:"
{ $table { $table
{ "Positive infinity" { $snippet "1/0." } } { "Positive infinity" { $snippet "1/0." } }
{ "Negative infinity" { $snippet "-1/0." } } { "Negative infinity" { $snippet "-1/0." } }
{ "Not-a-number" { $snippet "0/0." } } { "Not-a-number" { $snippet "0/0." } }
} }
"A Not-a-number with an arbitrary payload can be parsed in:" "A Not-a-number with an arbitrary payload can also be parsed in:"
{ $subsection POSTPONE: NAN: } { $subsection POSTPONE: NAN: }
"More information on floats can be found in " { $link "floats" } "." ; "More information on floats can be found in " { $link "floats" } "." ;