зеркало из https://github.com/github/ruby.git
* numeric.c (flodivmod): must through the same pass if HAVE_FMOD or not.
this is a bugfix of r35013. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
005953a17b
Коммит
cc3d03b196
|
@ -1,3 +1,8 @@
|
|||
Wed Mar 14 17:55:29 2012 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* numeric.c (flodivmod): must through the same pass if HAVE_FMOD or not.
|
||||
this is a bugfix of r35013.
|
||||
|
||||
Wed Mar 14 16:41:55 2012 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* test/test_tmpdir.rb (TestTmpdir#test_world_writable): skip on Windows.
|
||||
|
|
|
@ -814,18 +814,18 @@ flodivmod(double x, double y, double *divp, double *modp)
|
|||
double div, mod;
|
||||
|
||||
if (y == 0.0) rb_num_zerodiv();
|
||||
#ifdef HAVE_FMOD
|
||||
mod = fmod(x, y);
|
||||
#else
|
||||
if((x == 0.0) || (isinf(y) && !isinf(x)))
|
||||
mod = x;
|
||||
else {
|
||||
#ifdef HAVE_FMOD
|
||||
mod = fmod(x, y);
|
||||
#else
|
||||
double z;
|
||||
|
||||
modf(x/y, &z);
|
||||
mod = x - z * y;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
if (isinf(x) && !isinf(y) && !isnan(y))
|
||||
div = x;
|
||||
else
|
||||
|
|
Загрузка…
Ссылка в новой задаче