NSDecimalNumber subtraction
Asked Answered
V

1

6

I need to subtract 0.5 from number a and set the answer to number b. My code looks like it would work but I'm not sure what I'm doing wrong. The error I get Is on the subtraction line, the error says incompatible type for argument 1 of 'decimalNumberBySubtracting:'.

Heres my header: (Note: I only showed the numbers because the header is large)

    NSDecimalNumber *a;
    NSDecimalNumber *b;

Heres the rest: (Assume this is in an IBAction)

    b = [a decimalNumberBySubtracting:0.5];

If anyone knows how to properly subtract any help would be appreciated.

Viridian answered 17/4, 2010 at 12:40 Comment(0)
A
14

The parameter must be an NSDecimalNumber too.

NSDecimalNumber *half = [NSDecimalNumber decimalNumberWithString:@"0.5"];
b = [a decimalNumberBySubtracting:half];

In your example you're using a float. There are two reason that cannot work:

  • Objective-C cannot distinguis a float and an object at runtime, meaning you cannot supply a float instead of an object.
  • Most decimal numbers cannot be described exactly in a binary system, therefore you have to work exclusively with decimal or binary numbers, but not both.
Accumulation answered 17/4, 2010 at 12:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.