mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-29 19:30:36 +02:00
(ice-9 format): Fix scaling floats with leading zeros
This commit is contained in:
parent
98dff7a75e
commit
c85724bd0a
2 changed files with 9 additions and 3 deletions
|
@ -1359,10 +1359,10 @@
|
|||
(else
|
||||
(if (> left-zeros 0)
|
||||
(if (<= left-zeros shift) ; shift always > 0 here
|
||||
(format:fn-shiftleft shift) ; shift out 0s
|
||||
(begin
|
||||
(format:fn-shiftleft left-zeros)
|
||||
(set! format:fn-dot (- shift left-zeros))))
|
||||
(set! format:fn-dot (- shift left-zeros)))
|
||||
(format:fn-shiftleft shift)) ; shift out 0s
|
||||
(set! format:fn-dot (+ format:fn-dot shift))))))))
|
||||
|
||||
(let ((negexp ; expon format m.nnnEee
|
||||
|
|
|
@ -121,7 +121,13 @@
|
|||
;; in guile prior to 1.6.9 and 1.8.1, leading zeros were incorrectly
|
||||
;; stripped, moving the decimal point and giving "25.0" here
|
||||
(pass-if "string 02.5"
|
||||
(string=? "2.5" (format #f "~f" "02.5"))))
|
||||
(string=? "2.5" (format #f "~f" "02.5")))
|
||||
|
||||
(pass-if "scale with few leading zeros"
|
||||
(string=? "1.23" (format #f "~,,3f" "0.00123")))
|
||||
|
||||
(pass-if "scale with many leading zeros"
|
||||
(string=? "0.0123" (format #f "~,,1f" "0.00123"))))
|
||||
|
||||
;;;
|
||||
;;; ~h
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue