quick hack for NaN comparison

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32200 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2011-02-17 18:04:17 +00:00
parent b2d820c72c
commit 2f6264e1cb
3 changed files with 50 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2011-02-16 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSDecimalNumber.m:
* Source/NSNumber.m:
Quick hacks to try to get NaN comparison working.
2011-02-16 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSDateFormatter.m:

View file

@ -719,8 +719,24 @@ static NSDecimalNumber *one;
return NSDecimalCompare(&d1, &d2);
}
else if ([decimalNumber isKindOfClass: [NSNumber class]])
{
NSComparisonResult r = [decimalNumber compare: self];
if (r == NSOrderedAscending)
{
return NSOrderedDescending;
}
else if (r == NSOrderedDescending)
{
return NSOrderedAscending;
}
return NSOrderedSame;
}
else
return [super compare: decimalNumber];
{
return [super compare: decimalNumber];
}
}
- (NSDecimalNumber*) decimalNumberByAdding: (NSDecimalNumber*)decimalNumber

View file

@ -164,7 +164,33 @@ return NSOrderedSame;
double other = [aNumber doubleValue];
double value = [self doubleValue];
COMPARE (value, other);
if (isnan(value))
{
if (isnan(other))
{
return NSOrderedSame;
}
else
{
return NSOrderedAscending;
}
}
else
{
if (isnan(other))
{
return NSOrderedDescending;
}
else if (value < other)
{
return NSOrderedAscending;
}
else if (value > other)
{
return NSOrderedDescending;
}
return NSOrderedSame;
}
}
default:
[NSException raise: NSInvalidArgumentException