IT干货网

cocoa之NSDecimalNumber减法

xmjava 2025年05月04日 编程设计 133 0

我需要从数字a减去0.5并将答案设置为数字b。我的代码看起来可以正常工作,但是我不确定自己做错了什么。我得到的错误是在减法线上,错误显示为incompatible type for argument 1 of 'decimalNumberBySubtracting:'

这是我的标题:(注意:因为标题很大,我只显示了数字)

    NSDecimalNumber *a; 
    NSDecimalNumber *b; 

其余部分:(假设这在IBAction中)
    b = [a decimalNumberBySubtracting:0.5]; 

如果有人知道如何适当减去任何帮助,将不胜感激。

请您参考如下方法:

该参数也必须是NSDecimalNumber。

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

在您的示例中,您使用的是浮点数。有两个原因不起作用:
  • Objective-C在运行时无法区分浮点数和对象,这意味着您不能提供浮点数而不是对象。
  • 大多数十进制数字无法在二进制系统中准确描述,因此您必须专门使用十进制或二进制数字,但不能同时使用两者。

  • 评论关闭
    IT干货网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!