adjust flonum printing to be more like %g
Adjust the choice between exponential and not. Closes racket/racket#3195 original commit: 3a71e6fb6240d1c9e206064a613835c6eea871aa
This commit is contained in:
parent
a820e425d6
commit
c5ee80bf0d
|
@ -714,7 +714,7 @@
|
|||
(equal? (number->string 1.1665795231290236e-302) "1.1665795231290236e-302")
|
||||
; fp printing algorithm always rounds up on ties
|
||||
(equal? (number->string 3.6954879760742188e-6) "3.6954879760742188e-6")
|
||||
(equal? (number->string 5.629499534213123e14) "5.629499534213123e+14")
|
||||
(equal? (number->string 5.629499534213123e14) "562949953421312.3")
|
||||
)
|
||||
|
||||
(mat string->number
|
||||
|
|
10
s/print.ss
10
s/print.ss
|
@ -1058,7 +1058,15 @@ floating point returns with (1 0 -1 ...).
|
|||
(if (fx< s 0)
|
||||
(write-char #\- p)
|
||||
(when force-sign (write-char #\+ p)))
|
||||
(if (or (fx> r 10) (fx< -4 e 10))
|
||||
(if (or (fx> r 10) (cond
|
||||
[(fx< e -4) #f]
|
||||
[(fx< e 14) #t]
|
||||
[else
|
||||
(let ([digits (let loop ([ls ls] [digits 0])
|
||||
(if (fx< (car ls) 0)
|
||||
digits
|
||||
(loop (cdr ls) (fx+ digits 1))))])
|
||||
(fx< (fx- e digits) 3))]))
|
||||
(free-format e ls p)
|
||||
(free-format-exponential e ls r p))))
|
||||
(cond
|
||||
|
|
Loading…
Reference in New Issue
Block a user