有効桁数を使用してフォーマットするように NSNumberFormatter を設定したので、値を正しく表示するために必要な数の 10 進数のみを表示する必要があります。
フォーマット7.0
に使用すると、期待どおりに動作し、生成しますが、フォーマット@"7"
に使用すると0.0
、フォーマッタは期待どおりに生成しませ@"0.0"
ん@"0"
。
NSNumberFormatter *doubleValF = [[NSNumberFormatter alloc] init];
[doubleValF setNumberStyle:NSNumberFormatterDecimalStyle];
[doubleValF setRoundingMode:NSNumberFormatterRoundHalfUp];
doubleValF.maximumFractionDigits = 9;
doubleValF.minimumFractionDigits = 0;
doubleValF.minimumSignificantDigits = 0;
doubleValF.maximumSignificantDigits = 30;
[doubleValF setUsesSignificantDigits:YES];
double value1 = 0.0;
NSString *value1String = [doubleValF stringFromNumber:[NSNumber numberWithDouble:value1]];
double value2 = 7.0;
NSString *value2String = [doubleValF stringFromNumber:[NSNumber numberWithDouble:value2]];
NSLog(@"value1=%@", value1String);
NSLog(@"value2=%@", value2String);
このコードを実行すると、次の出力が得られます。
2012-12-15 15:57:03.425 StackOverflowTests[41701:11303] value1=0.0
2012-12-15 15:57:03.426 StackOverflowTests[41701:11303] value2=7