iPhone 電卓アプリを作成していますが、解決策が見つからないように見えるこの問題に遭遇しました。
ユーザーが数値を入力すると、それらを double に変換し、その double の結果を文字列に変換します。%g を使用して整数を取得しています。私が抱えている問題は、「E」指数を示す大きな数の場合です。これは私がこれまでに試したことです
NSLog(@"Num1: %g", 5000.0*8.0);
NSLog(@"Num2: %g", 500000.0*85.0);
NSLog(@"Num3: %f", 500000.0*85.0);
NSLog(@"Num4: %.4f", 5000.0*8.0);
NSLog(@"Num5: %.4f", 500000.0*85.0);
NSLog(@"Num6: %g", 5000000.0/3.7);
NSLog(@"Num7: %.4f", 5000000.0/3.7);
これは私が結果の面で得たものです
2013-10-20 14:09:34.261 ECalc[9947:a0b] Num1: 40000
2013-10-20 14:09:34.262 ECalc[9947:a0b] Num2: 4.25e+07
2013-10-20 14:09:34.263 ECalc[9947:a0b] Num3: 42500000.000000
2013-10-20 14:09:34.264 ECalc[9947:a0b] Num4: 40000.0000
2013-10-20 14:09:34.264 ECalc[9947:a0b] Num5: 42500000.0000
2013-10-20 14:09:34.265 ECalc[9947:a0b] Num6: 1.35135e+06
2013-10-20 14:09:34.266 ECalc[9947:a0b] Num7: 1351351.3514
通常の電卓と同じように、数値が正常に乗算されたときに整数を表示したいと思います。すなわち
Num2 = 42500000
Num7 = 1351351.3514
ここに私の質問があります。num2 と num7 の両方の結果に適合する、使用できる文字列書式指定子はありますか? ドットの後の数字がゼロであるかどうかを確認するために多くのロジックを使用する必要がありますか?それ以外の場合はそれらを保持して %.4f を使用しますか?