зеркало из https://github.com/github/ruby.git
* ext/bigdecimal/bigdecimal.c (BigDecimal_divide): fix precision too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
03ad923cdd
Коммит
520053232e
|
@ -1,3 +1,7 @@
|
|||
Tue Feb 9 23:48:25 2010 Yusuke Endoh <mame@tsg.ne.jp>
|
||||
|
||||
* ext/bigdecimal/bigdecimal.c (BigDecimal_divide): fix precision too.
|
||||
|
||||
Tue Feb 9 23:26:07 2010 Yusuke Endoh <mame@tsg.ne.jp>
|
||||
|
||||
* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): fix precision.
|
||||
|
|
|
@ -882,7 +882,9 @@ BigDecimal_divide(Real **c, Real **res, Real **div, VALUE self, VALUE r)
|
|||
if(!b) return DoSomeOne(self,r,'/');
|
||||
SAVE(b);
|
||||
*div = b;
|
||||
mx =(a->MaxPrec + b->MaxPrec + 1) * VpBaseFig();
|
||||
mx = a->Prec+abs(a->exponent);
|
||||
if(mx<b->Prec+abs(b->exponent)) mx = b->Prec+abs(b->exponent);
|
||||
mx =(mx + 1) * VpBaseFig();
|
||||
GUARD_OBJ((*c),VpCreateRbObject(mx, "#0"));
|
||||
GUARD_OBJ((*res),VpCreateRbObject((mx+1) * 2 +(VpBaseFig() + 1), "#0"));
|
||||
VpDivd(*c, *res, a, b);
|
||||
|
|
Загрузка…
Ссылка в новой задаче