summaryrefslogtreecommitdiff
path: root/numeric.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-03-25 09:36:59 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-03-25 09:36:59 +0000
commitb513f647694a76714bde34d4cdc3990ce0dec7c3 (patch)
tree1db8b7e0aae1c2bcf04eb0c9012da5333e57d5c7 /numeric.c
parent24a82091466f3b522b2ad2c9c0163d84e3e66314 (diff)
heredoc etc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'numeric.c')
-rw-r--r--numeric.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/numeric.c b/numeric.c
index 7ba40e6daf..d07af84425 100644
--- a/numeric.c
+++ b/numeric.c
@@ -279,7 +279,7 @@ flo_modulo(x, y, modulo)
VALUE x, y;
int modulo;
{
- double value;
+ double value, result;
switch (TYPE(y)) {
case T_FIXNUM:
@@ -296,22 +296,21 @@ flo_modulo(x, y, modulo)
}
#ifdef HAVE_FMOD
- value = fmod(RFLOAT(x)->value, value);
+ result = fmod(RFLOAT(x)->value, value);
#else
{
double value1 = RFLOAT(x)->value;
double value2;
modf(value1/value, &value2);
- value = value1 - value2 * value;
+ result = value1 - value2 * value;
}
#endif
if (modulo &&
- (RFLOAT(x)->value < 0.0) != (RFLOAT(y)->value < 0.0) &&
- value != 0.0) {
- value += RFLOAT(y)->value;
+ (RFLOAT(x)->value < 0.0) != (result < 0.0) && result != 0.0) {
+ result += value;
}
- return float_new(value);
+ return float_new(result);
}
static VALUE