Format integer floats without .0 suffix #6951
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rationale for this change
When formatting 32-bit or 64-bit floats, the current formatter always includes a
.0
suffix on integers, so that zero is formatted as0.0
, one as1.0
, etc. In cases where there is a lot of zeros (or integers), that can result in a lot of visual noise in the output.By contrast, the standard float formatter in Rust formats integers without a
.0
suffix.Similarly, the float formatter for
f16
in arrow also does not include the.0
suffix, meaning the float formatting in arrow is inconsistent with bothstd
and itself.Changes
This removes any
.0
suffix on formatted floats, so that zero is always formatted as0
, regardless if it is stored asf16
,f32
oru32
.Alternatives
We could add this as an option to
FormatOptions
, but that would require a larger refactor in order to accessFormatOptions
inimpl DisplayIndex for PrimitiveArray<Float32Type>