将 double 转换为 NSDecimalNumber 时收到警告
Get warning when convert double to NSDecimalNumber
我正在尝试将 double
转换为 NSDeciamlNumber
。这是我的代码:
- (NSDecimalNumber *)myMethod {
double amount = 42;
...
return [NSDecimalNumber numberWithDouble:amount]; // Get warning here
}
但我收到以下警告:
Incompatible pointer types returning 'NSNumber *' from a function with result type 'NSDecimalNumber *'
我做错了什么,我该如何解决?
根据文档 [NSDecimalNumber numberWithDouble:_] returns 一个 NSNumber,因此您应该更改方法声明
- (NSNumber *)myMethod {
double amount = 42;
...
return [NSDecimalNumber numberWithDouble:amount]; // Get warning here
}
试试这个。可能会成功
- (NSNumber *)myMethod {
double amount = 42;
[NSNumber numberWithDouble:amount]
return [NSDecimalNumber numberWithDouble:amount];
}
numberWithDouble:
方法 return 是一个 NSNumber 对象,但你假设 return NSDecimalNumber.
改为
- (NSDecimalNumber *)myMethod {
double amount = 42;
return [[NSDecimalNumber alloc]initWithDouble:amount];
}
试试下面的代码-
- (NSDecimalNumber *)myMethod {
double amount = 42;
...
return [[NSDecimalNumber alloc] initWithDouble: amount];
}
numberWithDouble: NSDecimalNumber returns NSNumber 的方法。
在您的方法中,您想要 return 十进制,因此如果您分配一个带有十进制值(示例中的金额)的新 NSDecimalNumber 就可以了。
可以使用以下方法来消除错误:
-(NSDecimalNumber *)myMethod
{ double amount = 42; ...
return [[NSDecimalNumber alloc] initWithDouble: amount];
}
我正在尝试将 double
转换为 NSDeciamlNumber
。这是我的代码:
- (NSDecimalNumber *)myMethod {
double amount = 42;
...
return [NSDecimalNumber numberWithDouble:amount]; // Get warning here
}
但我收到以下警告:
Incompatible pointer types returning 'NSNumber *' from a function with result type 'NSDecimalNumber *'
我做错了什么,我该如何解决?
根据文档 [NSDecimalNumber numberWithDouble:_] returns 一个 NSNumber,因此您应该更改方法声明
- (NSNumber *)myMethod {
double amount = 42;
...
return [NSDecimalNumber numberWithDouble:amount]; // Get warning here
}
试试这个。可能会成功
- (NSNumber *)myMethod {
double amount = 42;
[NSNumber numberWithDouble:amount]
return [NSDecimalNumber numberWithDouble:amount];
}
numberWithDouble:
方法 return 是一个 NSNumber 对象,但你假设 return NSDecimalNumber.
改为
- (NSDecimalNumber *)myMethod {
double amount = 42;
return [[NSDecimalNumber alloc]initWithDouble:amount];
}
试试下面的代码-
- (NSDecimalNumber *)myMethod {
double amount = 42;
...
return [[NSDecimalNumber alloc] initWithDouble: amount];
}
numberWithDouble: NSDecimalNumber returns NSNumber 的方法。 在您的方法中,您想要 return 十进制,因此如果您分配一个带有十进制值(示例中的金额)的新 NSDecimalNumber 就可以了。
可以使用以下方法来消除错误:
-(NSDecimalNumber *)myMethod
{ double amount = 42; ...
return [[NSDecimalNumber alloc] initWithDouble: amount];
}