0

現在、コーディングに少し問題があります。現在、テスト目的で、ピッカーの選択された値を表示するラベルがあります。

私が抱えている問題は、ラベルに整数のみが表示され、10 進数全体が表示されないことです。ピッカーで選択したアイテムの完全な値を取得できるように、誰か助けてもらえますか?

これが私のコードです:

// returns the number of 'columns' to display.
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 1;
}

// returns the # of rows in each component..
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    return [tempList count];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    return [tempList objectAtIndex:row];
}

- (void)pickerView:(UIPickerView *)pickerView
      didSelectRow:(NSInteger)row
       inComponent:(NSInteger)component {

   CGFloat chosenValue;

    switch (row) {
        case 0:
            chosenValue = 0.0000373;
            break;
        case 1:
            chosenValue = 0.0000273;
            break;
        case 2:
            chosenValue = 0.0000233;
            break;
        case 3:
            chosenValue = 0.0000204;
            break;
        case 4:
            chosenValue = 0.0000179;
            break;
        case 5:
            chosenValue = 0.0000169;
            break;
        case 6:
            chosenValue = 0.0000142;
            break;
        default:
            chosenValue = 0;
            break;
    }

NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
    formatter.numberStyle = NSNumberFormatterDecimalStyle;

self.testLabel.text = [formatter stringFromNumber:@(chosenValue)];


}
4

3 に答える 3

2

精度を指定する必要があります。

self.textLabel.text = [NSString stringWithFormat:@"%.7f", chosenValue];

書式指定子のデフォルトは%f小数点以下 5 桁です。

そして、十分な有効数字を取得するには、おそらく に変更chosenValueする必要があります。double

さらに良いことに、を使用しているためNSNumberFormatter、小数点以下の桁数を設定します。

NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
formatter.minimumFractionDigits = 7;
于 2013-07-10T16:24:16.160 に答える
0

これを試して :

self.testLabel.text = [NSString stringWithFormat:@"%.10f",chosenValue];

それ以外の:

self.testLabel.text = [formatter stringFromNumber:@(chosenValue)];
于 2013-07-10T16:14:49.500 に答える