Clojure

cl-format prints ratio arguments with bad format for E, F, G directives

Details

  • Type: Defect Defect
  • Status: Closed Closed
  • Priority: Trivial Trivial
  • Resolution: Completed
  • Affects Version/s: Release 1.3, Release 1.4
  • Fix Version/s: Release 1.6
  • Component/s: None
  • Labels:
  • Patch:
    Code and Test
  • Approval:
    Ok

Description

Before:

user=> (use 'clojure.pprint)
nil
user=> (cl-format false "~e" 4/5)
"4./5E+2"
user=> (cl-format false "~f" 4/5)
"4/5.0"
user=> (cl-format false "~g" 4/5)
"4/5.    "

After:

user=> (cl-format false "~10,3f" 4/5)
"     0.800"
user=> (cl-format false "~e" 4/5)
"8.0E-1"
user=> (cl-format false "~f" 4/5)
"0.8"
user=> (cl-format false "~g" 4/5)
"0.8    "

Approach: Patch changes cl-format so that when E, F, or G directive is used, the corresponding arg is coerced from a clojure.lang.Ratio to a double before formatting, if it fits in a double, otherwise a BigDecimal if the extra precision is needed.

Patch: clj-937-cl-format-coerces-ratios-patch2.diff

Screened by: Alex Miller

Activity

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: