cocoa - NSDecimalNumber减法

标签 cocoa math subtraction nsdecimalnumber

我需要从数字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在运行时无法区分浮点数和对象,这意味着您不能提供浮点数而不是对象。
  • 大多数十进制数字无法在二进制系统中准确描述,因此您必须专门使用十进制或二进制数字,但不能同时使用两者。
  • 关于cocoa - NSDecimalNumber减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2658354/

    相关文章:

    objective-c - CoreData/SQLite 确定字段是否不以特定字符串结尾的最快方法

    cocoa - 简单地向 NSBrowser 添加数据?

    python - 如何在Python中获得切向向量?

    python - 如何从 pandas python 中另一个数据帧的子集交集减去一个数据帧?

    objective-c - "float_t"是做什么用的?

    objective-c - 将 webview 的内容设置为 html 字符串( cocoa )

    math - 如何从其组件对数项计算对数(项的总和)

    math - 希尔伯特系统-自动打样

    c++ - 减去未知 bitesize 的两个值

    MySql Select - 行减去上一行