Fix negative zero

db4
Slava Pestov 2008-07-20 00:56:25 -05:00
parent 37af854b18
commit 89d3c0c616
2 changed files with 10 additions and 11 deletions

View File

@ -77,10 +77,6 @@ unit-test
[ "-101.0e-2" string>number number>string ]
unit-test
[ 5.0 ]
[ "10.0/2" string>number ]
unit-test
[ f ]
[ "1e1/2" string>number ]
unit-test
@ -104,3 +100,5 @@ unit-test
[ "1.0/0.0" ] [ 1.0 0.0 / number>string ] unit-test
[ "-1.0/0.0" ] [ -1.0 0.0 / number>string ] unit-test
[ "-0.0" ] [ -0.0 number>string ] unit-test

View File

@ -73,13 +73,14 @@ PRIVATE>
: base> ( str radix -- n/f )
[
"-" ?head dup negative? set >r
{
{ [ CHAR: / over member? ] [ string>ratio ] }
{ [ CHAR: . over member? ] [ string>float ] }
[ string>integer ]
} cond
r> [ dup [ neg ] when ] when
CHAR: . over member? [
string>float
] [
"-" ?head dup negative? set >r
CHAR: / over member?
[ string>ratio ] [ string>integer ] if
r> [ dup [ neg ] when ] when
] if
] with-radix ;
: string>number ( str -- n/f ) 10 base> ;