19

私はiPhoneアプリに取り組んでおり、金額($)を表したいと思っています。ある程度の丸め誤差が発生するため、floatは使用できません。何が使えますか?

私は自分のMoneyクラスを定義し、ドルとペニーをNSIntegerとして内部的に保存することを考えています。

@interface Money : NSObject {
    //$10.25 is stored as dollas=10 and pennies=25
    NSInteger dollars;
    NSInteger pennies;
}

もう1つの可能な表現(加算と乗算が簡単)は、1セント硬貨として単一のNSIntegerを使用することです。

@interface Money : NSObject {
    //$10.25 is stored as pennies=1025
    NSInteger pennies;
}

あなたの考えは何ですか?使用できる「BigDecimal」タイプはありますか?

4

2 に答える 2

27

NSDecimalNumber を使用します。確かにオーバーヘッドはありますが、それが問題であることを証明できない限り、得られる精度を気に入るはずです。

http://www.cimgf.com/2008/04/23/cocoa-tutorial-dont-be-lazy-with-nsdecimalnumber-like-me/ http://developer.apple.com/documentation/Cocoa/Reference/ Foundation/Classes/NSDecimalNumber_Class/Reference/Reference.html

于 2009-05-06T16:20:41.773 に答える
8

NSDecimalNumberクラスを使用します。

于 2009-05-06T16:19:26.270 に答える