Skip to content

Commit

Permalink
* numeric.c (flo_round): use pow instead of while-loop. fixes ruby#4510
Browse files Browse the repository at this point in the history
  patched by Alex Young [ruby-core:35526]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
nurse committed Mar 22, 2011
1 parent 12d1744 commit 2c1936c
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
Tue Mar 22 09:38:19 2011 NARUSE, Yui <[email protected]>

* numeric.c (flo_round): use pow instead of while-loop. fixes #4510
patched by Alex Young [ruby-core:35526]

Tue Mar 22 06:47:46 2011 NARUSE, Yui <[email protected]>

* ext/date/date_strftime.c (date_strftime_wo_timespec):
Expand Down
7 changes: 2 additions & 5 deletions numeric.c
Original file line number Diff line number Diff line change
Expand Up @@ -1479,17 +1479,14 @@ flo_round(int argc, VALUE *argv, VALUE num)
{
VALUE nd;
double number, f;
int ndigits = 0, i;
int ndigits = 0;
long val;

if (argc > 0 && rb_scan_args(argc, argv, "01", &nd) == 1) {
ndigits = NUM2INT(nd);
}
number = RFLOAT_VALUE(num);
f = 1.0;
i = abs(ndigits);
while (--i >= 0)
f = f*10.0;
f = pow(10, abs(ndigits));

if (isinf(f)) {
if (ndigits < 0) number = 0;
Expand Down

0 comments on commit 2c1936c

Please sign in to comment.