From e1424c35012ccf1f3822c9046081b225aef4142e Mon Sep 17 00:00:00 2001 From: Kenta Murata Date: Fri, 18 Dec 2020 23:46:26 +0900 Subject: [bigdecimal] Fix the default precision of Float#to_d Fix https://github.com/ruby/bigdecimal/issues/70 [Bug #13331] https://github.com/ruby/bigdecimal/commit/aa536cd4b5 --- ext/bigdecimal/bigdecimal.c | 2 +- ext/bigdecimal/lib/bigdecimal/util.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'ext/bigdecimal') diff --git a/ext/bigdecimal/bigdecimal.c b/ext/bigdecimal/bigdecimal.c index 2b3c0bbfe5..88756826d5 100644 --- a/ext/bigdecimal/bigdecimal.c +++ b/ext/bigdecimal/bigdecimal.c @@ -1278,7 +1278,7 @@ BigDecimal_mult(VALUE self, VALUE r) GUARD_OBJ(a, GetVpValue(self, 1)); if (RB_TYPE_P(r, T_FLOAT)) { - b = GetVpValueWithPrec(r, DBL_DIG+1, 1); + b = GetVpValueWithPrec(r, DBLE_FIG, 1); } else if (RB_TYPE_P(r, T_RATIONAL)) { b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1); diff --git a/ext/bigdecimal/lib/bigdecimal/util.rb b/ext/bigdecimal/lib/bigdecimal/util.rb index 66fff7867b..00a3e967bd 100644 --- a/ext/bigdecimal/lib/bigdecimal/util.rb +++ b/ext/bigdecimal/lib/bigdecimal/util.rb @@ -43,7 +43,7 @@ class Float < Numeric # # See also BigDecimal::new. # - def to_d(precision=Float::DIG) + def to_d(precision=Float::DIG+1) BigDecimal(self, precision) end end -- cgit v1.2.3