3.9 KiB
3.9 KiB
CHANGELOG
v2.3.0 (2024-12-13)
- Implement the upcoming
JSON.Encoderprotocol
v2.2.0 (2024-11-13)
- Add
Decimal.gte?/2andDecimal.lte?/2 - Add
Decimal.compare/3andDecimal.eq?/3with threshold as parameter
v2.1.1 (2023-04-26)
Decimal v2.1 requires Elixir v1.8+.
Bug fixes
- Fix
Decimal.compare/2when comparing against0
v2.1.0 (2023-04-26)
Decimal v2.1 requires Elixir v1.8+.
Enhancements
- Improve error message from
Decimal.to_integer/1during precision loss Inspectprotocol implementation returns strings in theDecimal.new(...)format- Add
Decimal.scale/1 - Optimize
Decimal.compare/2for numbers with large exponents
Bug fixes
- Fix
Decimal.integer?/1spec - Fix
Decimal.integer?/1check on 0 with >1 significant digits
v2.0.0 (2020-09-08)
Decimal v2.0 requires Elixir v1.2+.
Enhancements
- Add
Decimal.integer?/1
Breaking changes
- Change
Decimal.compare/2to return:lt | :eq | :gt - Change
Decimal.cast/1to return{:ok, t} | :error - Change
Decimal.parse/1to return{t, binary} | :error - Remove
:messageand:resultfields fromDecimal.Error - Remove sNaN
- Rename qNaN to NaN
- Remove deprecated support for floats in
Decimal.new/1 - Remove deprecated
Decimal.minus/1 - Remove deprecated
Decimal.plus/1 - Remove deprecated
Decimal.reduce/1 - Remove deprecated
Decimal.with_context/2,Decimal.get_context/1,Decimal.set_context/1, andDecimal.update_context/1 - Remove deprecated
Decimal.decimal?/1
Deprecations
- Deprecate
Decimal.cmp/2
v1.9.0 (2020-09-08)
Enhancements
- Add
Decimal.negate/1 - Add
Decimal.apply_context/1 - Add
Decimal.normalize/1 - Add
Decimal.Context.with/2,Decimal.Context.get/1,Decimal.Context.set/2, andDecimal.Context.update/1 - Add
Decimal.is_decimal/1
Deprecations
- Deprecate
Decimal.minus/1in favour of the newDecimal.negate/1 - Deprecate
Decimal.plus/1in favour of the newDecimal.apply_context/1 - Deprecate
Decimal.reduce/1in favour of the newDecimal.normalize/1 - Deprecate
Decimal.with_context/2,Decimal.get_context/1,Decimal.set_context/2, andDecimal.update_context/1in favour of new functions on theDecimal.Contextmodule - Deprecate
Decimal.decimal?/1in favour of the newDecimal.is_decimal/1
v1.8.1 (2019-12-20)
Bug fixes
- Fix Decimal.compare/2 with string arguments
- Set :signal on error
v1.8.0 (2019-06-24)
Enhancements
- Add
Decimal.cast/1 - Add
Decimal.eq?/2,Decimal.gt?/2, andDecimal.lt?/2 - Add guards to
Decimal.new/3to prevent invalid Decimal numbers
v1.7.0 (2019-02-16)
Enhancements
- Add
Decimal.sqrt/1
v1.6.0 (2018-11-22)
Enhancements
- Support for canonical XSD representation on
Decimal.to_string/2
Bugfixes
- Fix exponent off-by-one when converting from decimal to float
- Fix negative?/1 and positive?/1 specs
Deprecations
- Deprecate passing float to
Decimal.new/1in favor ofDecimal.from_float/1
v1.5.0 (2018-03-24)
Enhancements
- Add
Decimal.positive?/1andDecimal.negative?/1 - Accept integers and strings in arithmetic functions, e.g.:
Decimal.add(1, "2.0") - Add
Decimal.from_float/1
Soft deprecations (no warnings emitted)
- Soft deprecate passing float to
new/1in favor offrom_float/1
v1.4.1 (2017-10-12)
Bugfixes
- Include the given value as part of the error reason
- Fix
:half_even:lists.lastbug (empty signif) - Fix error message for round
- Fix
:half_downrounding error when remainder is greater than 5 - Fix
Decimal.new/1float conversion with bigger precision than 4 - Fix precision default value
v1.4.0 (2017-06-25)
Bugfixes
- Fix
Decimal.to_integer/1for large coefficients - Fix rounding of ~0 values
- Fix errors when comparing and adding two infinities