0

私の現在のアプリでは、通常、非常に長い 10 進数、つまり 0.12345 または .123 に解決される方程式があります。しかし、これが機能するために必要な方法は、10進数を1つまたは2つだけ表示することです。これにより、前述の値に基づいて、本質的に0.12または0.1が生成されます。

これを行うために、私は次のことを行いました: CGFloat を NSString に取りました:

CGFloat eX1 = 0.12345
NSLog(@" eX1 = %f", eX1);  //This of course , prints out 0.12345

NSNumberFormatter *XFormatter = [[NSNumberFormatter alloc] init];
Xformatter.numberStyle=NSNumberFormatterDecimalStyle;
Xformatter.maximumFractionDigits=1;


NSString *eX1F = [formatter stringFromNumber:@(eX1)]; 
NSLog (@"eX1F = %@",eX1F);  //This prints out 0.1

しかし、私の問題は、フォーマットされた後、これを CGFloat として扱い続ける必要があることnumberFromStringですNSNumber

my をフォーマットし、 orではなくCGFloatとして使用するにはどうすればよいですか?CGFloatNSStringNSNumber

私が試した更新:

float backToFloat = [myNumber floatValue];

しかし、結果はフォーマットされていない数値です。0.10000余分な0が必要です

4

2 に答える 2

1

stringWithFormat: を使用して、表示用に丸めて文字列に変換します。

NSString* str = [NSString stringWithFormat:@"%0.2f", eX1];

NSLog でも同じことができます。 %0.2fは、小数点以下 2 桁が必要だと言っています。

NSLog(@" eX1 =%0.2f", eX1);   // this prints "0.12"
于 2013-07-23T20:22:04.857 に答える