mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 17:10:48 +00:00
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:
parent
b2d820c72c
commit
2f6264e1cb
3 changed files with 50 additions and 2 deletions
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue