CHANGELOG.md (3105B)
1 # CHANGELOG 2 3 ## v2.0.0 (2020-09-08) 4 5 Decimal v2.0 requires Elixir v1.2+. 6 7 ### Enhancements 8 9 * Add `Decimal.integer?/1` 10 11 ### Breaking changes 12 13 * Change `Decimal.compare/2` to return `:lt | :eq | :gt` 14 * Change `Decimal.cast/1` to return `{:ok, t} | :error` 15 * Change `Decimal.parse/1` to return `{t, binary} | :error` 16 * Remove `:message` and `:result` fields from `Decimal.Error` 17 * Remove sNaN 18 * Rename qNaN to NaN 19 * Remove deprecated support for floats in `Decimal.new/1` 20 * Remove deprecated `Decimal.minus/1` 21 * Remove deprecated `Decimal.plus/1` 22 * Remove deprecated `Decimal.reduce/1` 23 * Remove deprecated `Decimal.with_context/2`, `Decimal.get_context/1`, `Decimal.set_context/1`, 24 and `Decimal.update_context/1` 25 * Remove deprecated `Decimal.decimal?/1` 26 27 ### Deprecations 28 29 * Deprecate `Decimal.cmp/2` 30 31 ## v1.9.0 (2020-09-08) 32 33 ### Enhancements 34 35 * Add `Decimal.negate/1` 36 * Add `Decimal.apply_context/1` 37 * Add `Decimal.normalize/1` 38 * Add `Decimal.Context.with/2`, `Decimal.Context.get/1`, `Decimal.Context.set/2`, 39 and `Decimal.Context.update/1` 40 * Add `Decimal.is_decimal/1` 41 42 ### Deprecations 43 44 * Deprecate `Decimal.minus/1` in favour of the new `Decimal.negate/1` 45 * Deprecate `Decimal.plus/1` in favour of the new `Decimal.apply_context/1` 46 * Deprecate `Decimal.reduce/1` in favour of the new `Decimal.normalize/1` 47 * Deprecate `Decimal.with_context/2`, `Decimal.get_context/1`, `Decimal.set_context/2`, 48 and `Decimal.update_context/1` in favour of new functions on the `Decimal.Context` module 49 * Deprecate `Decimal.decimal?/1` in favour of the new `Decimal.is_decimal/1` 50 51 ## v1.8.1 (2019-12-20) 52 53 ### Bug fixes 54 55 * Fix Decimal.compare/2 with string arguments 56 * Set :signal on error 57 58 ## v1.8.0 (2019-06-24) 59 60 ### Enhancements 61 62 * Add `Decimal.cast/1` 63 * Add `Decimal.eq?/2`, `Decimal.gt?/2`, and `Decimal.lt?/2` 64 * Add guards to `Decimal.new/3` to prevent invalid Decimal numbers 65 66 ## v1.7.0 (2019-02-16) 67 68 ### Enhancements 69 70 * Add `Decimal.sqrt/1` 71 72 ## v1.6.0 (2018-11-22) 73 74 ### Enhancements 75 76 * Support for canonical XSD representation on `Decimal.to_string/2` 77 78 ### Bugfixes 79 80 * Fix exponent off-by-one when converting from decimal to float 81 * Fix negative?/1 and positive?/1 specs 82 83 ### Deprecations 84 85 * Deprecate passing float to `Decimal.new/1` in favor of `Decimal.from_float/1` 86 87 ## v1.5.0 (2018-03-24) 88 89 ### Enhancements 90 91 * Add `Decimal.positive?/1` and `Decimal.negative?/1` 92 * Accept integers and strings in arithmetic functions, e.g.: `Decimal.add(1, "2.0")` 93 * Add `Decimal.from_float/1` 94 95 ### Soft deprecations (no warnings emitted) 96 97 * Soft deprecate passing float to `new/1` in favor of `from_float/1` 98 99 ## v1.4.1 (2017-10-12) 100 101 ### Bugfixes 102 103 * Include the given value as part of the error reason 104 * Fix `:half_even` `:lists.last` bug (empty signif) 105 * Fix error message for round 106 * Fix `:half_down` rounding error when remainder is greater than 5 107 * Fix `Decimal.new/1` float conversion with bigger precision than 4 108 * Fix precision default value 109 110 ## v1.4.0 (2017-06-25) 111 112 ### Bugfixes 113 114 * Fix `Decimal.to_integer/1` for large coefficients 115 * Fix rounding of ~0 values 116 * Fix errors when comparing and adding two infinities