mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 00:41:02 +00:00
fix error in float comparison
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32361 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
841e43be00
commit
b463bba090
2 changed files with 62 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2011-02-24 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSNumber.m:
|
||||
Fix error in float comparison.
|
||||
|
||||
2011-02-24 Niels Grewe <niels.grewe@halbordnung.de>
|
||||
|
||||
* Source/NSUserDefaults.m
|
||||
|
|
|
@ -265,8 +265,35 @@ return NSOrderedSame;
|
|||
case 'd':
|
||||
{
|
||||
double other = [aNumber doubleValue];
|
||||
double selfv = [self doubleValue];
|
||||
|
||||
COMPARE (((double) value), other);
|
||||
if (isnan(selfv))
|
||||
{
|
||||
if (isnan(other))
|
||||
{
|
||||
return NSOrderedSame;
|
||||
}
|
||||
else
|
||||
{
|
||||
return NSOrderedAscending;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isnan(other))
|
||||
{
|
||||
return NSOrderedDescending;
|
||||
}
|
||||
else if (selfv < other)
|
||||
{
|
||||
return NSOrderedAscending;
|
||||
}
|
||||
else if (selfv > other)
|
||||
{
|
||||
return NSOrderedDescending;
|
||||
}
|
||||
return NSOrderedSame;
|
||||
}
|
||||
}
|
||||
default:
|
||||
[NSException raise: NSInvalidArgumentException
|
||||
|
@ -305,9 +332,37 @@ return NSOrderedSame;
|
|||
[NSException raise: NSInvalidArgumentException
|
||||
format: @"nil argument for compare:"];
|
||||
}
|
||||
|
||||
other = [aNumber doubleValue];
|
||||
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;
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
|
|
Loading…
Reference in a new issue