feat: default precision #119
Open
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.
This pull request introduces a new global configuration for controlling the default precision when converting infinite-precision rationals (such as 1/3) to
Decimal
. This allows users to specify how many fractional digits should be kept during such conversions, improving usability and preventing unexpected exceptions. The update includes new API fields, documentation, and tests for this feature.New global configuration for infinite-precision rational conversion:
Decimal.defaultScaleOnInfinitePrecision
and its aliasDecimal.defaultPrecision
to control the default number of fractional digits when converting infinite-precision rationals toDecimal
. If unset, the previous throwing behavior is preserved.RationalExt.toDecimal()
to use the new global default ifscaleOnInfinitePrecision
is not provided for infinite-precision rationals. Throws anAssertionError
if neither is set. [1] [2]Documentation and usage examples:
README.md
explaining the new default precision setting, with code samples and clarification of its behavior and scope.CHANGELOG.md
to document the new feature in version 3.3.0.Testing and versioning:
pubspec.yaml
.