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
.0suffix 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
.0suffix.Similarly, the float formatter for
f16in arrow also does not include the.0suffix, meaning the float formatting in arrow is inconsistent with bothstdand itself.Changes
This removes any
.0suffix on formatted floats, so that zero is always formatted as0, regardless if it is stored asf16,f32oru32.Alternatives
We could add this as an option to
FormatOptions, but that would require a larger refactor in order to accessFormatOptionsinimpl DisplayIndex for PrimitiveArray<Float32Type>