私は Objective C を初めて使用し、iOS 開発の基礎を学び始めました。
Objective Cで分数を簡単に計算するにはどうすればよいですか?
例 1: 1/8000 * 60
例 2: 1/640 / 1/400
結果 (< 1 の場合) も分数として持つ必要があります。
私は Objective C を初めて使用し、iOS 開発の基礎を学び始めました。
Objective Cで分数を簡単に計算するにはどうすればよいですか?
例 1: 1/8000 * 60
例 2: 1/640 / 1/400
結果 (< 1 の場合) も分数として持つ必要があります。
Fraction
分子と分母の 2 つのプロパティを持つ新しいクラスを実装すると思います。次に、次の関数のうち 4 つ (必要に応じてそれ以上) を実装します。
- (Fraction*) add:(Fraction*)operand;
- (Fraction*) subtract:(Fraction*)operand;
- (Fraction*) multiply:(Fraction*)operand;
- (Fraction*) divide:(Fraction*)operand;
- (Fraction*) invert;
+ (Fraction*) fractionByAdding:(Fraction*)op1 to:(Fraction*)op2;
+ (Fraction*) fractionBySubtracting:(Fraction*)op1 from:(Fraction*)op2;
+ (Fraction*) fractionByMultiplying:(Fraction*)op1 with:(Fraction*)op2;
+ (Fraction*) fractionByDuviding:(Fraction*)op1 by:(Fraction*)op2;
+ (Fraction*) fractionByInverting:(Fraction*)operand;
これらの方法では、学校で習った通常の算術を行います。分子と分母の両方に公約数がある場合は、単純化することを忘れないでください。
編集: これらの関数のいずれかの実装例:
- (Fraction*) add:(Fraction*)operand {
return [Fraction fractionByAdding:self to:operand];
}
+ (Fraction*) fractionByAdding:(Fraction*)op1 to:(Fraction*)op2 {
int num = (op1.numerator * op2.denominator) + (op2.numerator * op1.denominator);
int denom = op1.denominator * op2.denominator;
return [[Fraction alloc] initWithNumerator:num andDenominator:denom];
}
Optionally you could add a reduce
or simplify
method and possibly an allowReducible
property and an isIrreducible
method. You could also implement isEqual
and compareTo
methods. A description
should just print "a/b" as an NSString
.
型キャストを使用できます。
int x = 1;
int y = 8000;
int z = 60;
float result = ((float)x) / y * z;
float
変数を使用して小数で計算できます。ただし、計算結果を分数として直接取得する方法はありません。常に別のfloat
、つまり 10 進数を取得します。10 進数を分数に変換するアルゴリズムはありますが、Objective-C の言語機能ではありません。