Objective-C에서 이러한 코드 줄을 RubyMotion으로 변환하려고하지만 작동하지 않습니다. RubyMotion에서 NSDecimalNumber 클래스 메서드를 사용하는 방법?
NSDecimalNumber *subtotal = [[NSDecimalNumber alloc] initWithString:@"12.34"];
NSDecimalNumber *shipping = [[NSDecimalNumber alloc] initWithString:@"5.99"];
NSDecimalNumber *tax = [[NSDecimalNumber alloc] initWithString:@"2.50"];
NSDecimalNumber *total = [[subtotal decimalNumberByAdding:shipping] decimalNumberByAdding:tax];
이
내가 RubyMotion으로 뭘하려했으나 제대로 동작하지 않습니다 :subtotal = NSDecimalNumber.decimalNumberWithString('12.34')
shipping = NSDecimalNumber.decimalNumberWithString('5.99')
tax = NSDecimalNumber.decimalNumberWithString('2.50')
total = (subtotal.decimalNumberByAdding(shipping)).decimalNumberByAdding(tax)
을 그리고 이것은 내가 오류입니다 :
12.3400001525879에 대한 정의되지 않은 메서드`decimalNumberByAdding '플로트 (NoMethodError)
내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?
내가 답을 알고하지 않습니다,하지만 나는 RubyMotion이 떠 루비'subtotal' 변환 생각하고 방법이없는'에 따르면 –
을 decimalNumberByAdding' RubyMotion API 문서에는 메소드 decimalNumberByAdding이 있습니다. API 문서는 다음과 같습니다. [link] (http://www.rubymotion.com/developer-center/api/NSDecimalNumber.html) –
예 NSDecimalNumber에는 해당 메소드가 있습니다. 하지만 Ruby의 부동 클래스는 그렇지 않습니다. RubyMotion은 NSNumber를 자동으로 변환하여 NSDecimalNumber가 NSNumber의 서브 클래스이기 때문에 똑같은 일을합니다. 그래서'subtotal'은 더 이상 NSDecimalNumber 타입이 아닙니다. –