一千萬個為什麽

搜索

NSDecimalNumber減法

我需要從數字a中減去0.5並將答案設置為數字b。我的代碼看起來會起作用,但我不確定我做錯了什麽。我得到的錯誤是在減法行上,錯誤說“decimalNumberBySubtracting:”的參數1的不兼容類型。

繼承我的標題:(註意:我只顯示數字,因為標題很大)

    NSDecimalNumber *a;
    NSDecimalNumber *b;

繼承人:(假設這是在IBAction中)

    b = [a decimalNumberBySubtracting:0.5];

如果有人知道如何正確減去任何幫助將不勝感激。

最佳答案

該參數也必須是NSDecimalNumber。

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

在你的例子中,你使用的是浮點數。有兩個原因是行不通的:

  • Objective-C無法在運行時區分浮點數和對象,這意味著您無法提供浮點數而不是對象。
  • 大多數十進制數在二進制系統中無法準確描述,因此您必須專門使用十進制二進制數,但不能同時使用兩者。

轉載註明原文: NSDecimalNumber減法